クラス.DATEの
メソッドDateクラスの数は時代遅れされ、廃止されたが、まだ利用できないという意味ではないが、推奨しませんが、公式には、我々はCalendarクラスを使用することが示唆された。
簡単な使用の日付クラスへ
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//Mon Mar 30 18:13:26 CST 2020
// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
System.out.println(date.getTime());//1585563307686
//过时方法,但是可以使用
System.out.println(date.toLocaleString());//2020-3-30 18:14:13
}
}
二.DateFormatクラス
にDateFormat日付/時刻、言語に依存しない方法で抽象クラスのサブクラス、フォーマットやパースの日付または時刻をフォーマットします。日付/(SimpleDateFormatなど)時刻フォーマットサブクラス許可フォーマット(すなわち日付- >テキスト)、解析(テキスト- >日付)、および標準化。日付をDateオブジェクトとして、またはこの瞬間から始まるミリ秒GMT(グリニッジ標準時)1970年1月1日00:00:00数として表現されます。
一般的な方法:
①format(DATE日)日付フォーマットされた日付/時刻文字列。
②getInstance()はデフォルトの日付/時刻フォーマッタの日付と時間を使用SHORTスタイルを取得します。
日付を生成するテキスト文字列を解析与えスタートから③parse()。
public class DateFormatDemo {
public static void main(String[] args) throws ParseException {
Date date = new Date();
DateFormat df = DateFormat.getInstance();
String format = df.format(date);
System.out.println(format);//20-3-30 下午6:22默认的是短风格的日期格式
Date date1 = df.parse(format);
System.out.println(date1);//Mon Mar 30 18:29:00 CST 2020
df = DateFormat.getDateInstance(DateFormat.LONG);
String format1 = df.format(date);
System.out.println(format1);//2020年3月30日.选择风格
df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String format2 = df.format(date);
System.out.println(format2);//2020年3月30日 下午06时26分07秒
}
}
三.SimpleDateFormatクラス
のSimpleDateFormatは、日付のフォーマットと解析の具体的なクラスのロケール関連のやり方です。パース(テキスト- >日付)、 - (>テキスト日付)および正規化は、フォーマットすることができます。
時刻形式モード- SimpleDateFormatのは、任意のユーザー定義の日付の選択を可能にします。時刻フォーマッタを-しかし、getTimeInstance、getDateInstanceかに、getDateTimeInstanceではDateFormat日付を作成することをお勧めします。これらの各メソッドは、日付フォーマットデフォルトモードの初期化フォーマッタクラス/時間を返すことができます。フォーマットパターンはapplyPatternメソッドを必要に応じて変更することができます。
一般的な方法:
①applyPattern(文字列パターン)この日付フォーマットにパターン文字列を与えられました。
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
Date date = new Date();
String pattern="yyyy-MM-dd";//指定风格
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(pattern);//将给定模式字符串应用于此日期格式
String format = sdf.format(date);
System.out.println(format);//2020-03-30
Date date1 = sdf.parse(format);
System.out.println(date1);//Mon Mar 30 00:00:00 CST 2020
}
}
.Calendar四つのカテゴリーの
カレンダークラスは、カレンダフィールドYEAR、グループ、MONTH、DAY_OF_MONTH、HOURいくつかの他の方法、およびオペレーティング・フィールドのカレンダー(例えば、得られた日付来週の間の特定の瞬間変換を提供する抽象クラスであります)多くの方法を提供します。即座に利用できるミリ秒の値は、それがエポックからのものであることを示すために(すなわちGMT 00 1970年1月1日は以下のとおりです。00:00.000、グレゴリオ暦)のオフセットを。
public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象
Date time = calendar.getTime();
System.out.println(time);//Mon Mar 30 18:43:52 CST 2020
//获取HOUR属性的值
int hour = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println(hour);//18
}
}
ファイブ小さな操作(オンデマンド:お問い合わせ先週...情報)
注:月の必要性+1
public class CalendarDemo {
public static void main(String[] args) {
// 需求:查询最近一周。。。的信息,如何表示最近这一周
Date current = new Date();
Date endTime = null;
Calendar c = Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
c.setTime(current);
//把日增加一天,时分秒设置为0
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, 0);
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
endTime = c.getTime();
c.add(Calendar.DAY_OF_MONTH, -7);
Date beginTime = c.getTime();
System.out.println("开始时间:"+beginTime.toLocaleString());//开始时间:2020-3-24 0:00:00
System.out.println("结束时间:"+endTime.toLocaleString());//结束时间:2020-3-31 0:00:00
}
}
六.Dateツール
public class DateUtils {
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
/***
* Date类型转换成XMLGregorianCalendar类型
*
* @param date
* @return
*/
public static XMLGregorianCalendar convertToXMLGregorianCalendar(Date date) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
XMLGregorianCalendar gc = null;
try {
gc = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
} catch (Exception e) {
logger.error("Date类型转换成XMLGregorianCalendar类型出错:" + e);
}
return gc;
}
/***
* XMLGregorianCalendar类型转换成Date类型
*
* @param cal
* @return
* @throws Exception
*/
public static Date convertToDate(XMLGregorianCalendar cal) throws Exception {
GregorianCalendar ca = cal.toGregorianCalendar();
return ca.getTime();
}
/**
* String 转 Date
*
* @param str 日期字符串
* @param format 转换格式
* @return Date
*/
public static Date stringToDate(String str, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
Date date = null;
try {
date = dateFormat.parse(str);
} catch (ParseException e) {
logger.error("String类型 转 Date类型出错:" + e);
}
return date;
}
/**
* Date 转 String
* auther: shijing
* 2015年3月25日上午11:28:14
*
* @param date 日期
* @param format 转换格式
* @return
*/
public static String dateToString(Date date, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
String strDate = null;
try {
if (date != null) {
strDate = dateFormat.format(date);
}
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error("Date类型 转 String类型出错:" + e);
}
return strDate;
}
/***
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
XMLGregorianCalendar d = DateUtils
.convertToXMLGregorianCalendar(new Date());
// System.out.println(d.getDay());
XMLGregorianCalendar cal = null;
try {
cal = DatatypeFactory.newInstance().newXMLGregorianCalendar();
cal.setMonth(06);
cal.setYear(2010);
Date date = DateUtils.convertToDate(cal);
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat formatter = new SimpleDateFormat(format);
// System.out.println(formatter.format(date));
Date d1 = DateUtils.stringToDate("2014/7/24 9:51:00", "yyyy/MM/dd hh:mm:ss");
XMLGregorianCalendar d2 = DateUtils.convertToXMLGregorianCalendar(d1);
// System.out.println(d2.toString());
String dateStr = DateUtils.dateToString(cal.toGregorianCalendar().getTime(), "yyyy-MM-dd HH:mm:ss");
// System.out.println("dateStr="+ dateStr);
} catch (Exception e) {
e.printStackTrace();
}
}
}