java中日期类整理

1、java.util.Date类:

//创建一个时间
Date date = new Date();
System.out.println(date); //Thu May 24 10:24:43 CST 2018

//获取当前时间之后100ms的时间
Date date1 = new Date(System.currentTimeMillis()+100);
System.out.println(date1); // Thu May 24 10:24:43 CST 2018

//返回该时间对应的long型整数
long time = date.getTime();
System.out.println(time); // 1527128683490

//判断日期是否在指定日期之前
System.out.println(date.before(date1)); // true
//判断日期是否在指定日期之后
System.out.println(date.after(date1)); // false

//使用SimpleDateFormat格式化日期
Date date2 = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String dateStr = sdf.format(date2);
System.out.println(dateStr); // 2018年05月24日 11时13分45秒

 

2、java.util.Calendar类:

//创建一个默认的Calendar对象
Calendar calendar = Calendar.getInstance();

//从Calendar对象中取出Date对象
Date date = calendar.getTime();
System.out.println(date); // Thu May 24 10:59:02 CST 2018

//从Date中获取Calendar对象
Calendar calendar1 = Calendar.getInstance();
Date date1 = new Date();
calendar1.setTime(date1);

//Calendar对象常用方法

Calendar calendar2 = Calendar.getInstance();

//设置具体时间
calendar2.set(2018,5,24,10,48,23);
System.out.println(calendar2.toInstant()); // 2018-06-24T02:48:23.180Z

//取出年
System.out.println(calendar2.get(Calendar.YEAR)); // 2018

//取出月
System.out.println(calendar2.get(Calendar.MONTH)); // 5

//取出日
System.out.println(calendar2.get(Calendar.DATE)); // 24

//amount>0为增加,amount<0为减少,有进位和退位,即月超过12,年会进1
calendar2.add(Calendar.YEAR,-1);
System.out.println(calendar2.toInstant()); // 2017-06-24T02:48:23.180Z

//amount>0为增加,amount<0为减少,增加无进位,减少有退位
calendar2.roll(Calendar.MONTH,-8);
System.out.println(calendar2.toInstant()); // 2017-10-24T02:48:23.180Z

 

3、java.time.*类:

1、日期创建与格式化:

//创建一个日期
LocalDate date = LocalDate.now();

//创建一个时间
LocalTime time = LocalTime.now();

//创建一个日期和时间
LocalDateTime localDateTime = LocalDateTime.now();

//格式化日期
String strdateone = date.format(DateTimeFormatter.BASIC_ISO_DATE);
String strdatetwo = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

System.out.println(strdateone);
System.out.println(strdatetwo);


//字符串解析成日期对象
String strDateThree = "2018-05-08";
String strDateTimeThree = "2018-05-08 12:30:05";

LocalDate dateOne = LocalDate.parse(strDateThree,DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDateTime localDateTimeOne = LocalDateTime.parse(strDateTimeThree,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

System.out.println(dateOne);
System.out.println(localDateTimeOne);

 

2、LocalDateTime与Date相互转化:

//创建时间
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime); // 2018-05-23T16:31:20.582

//LocalDateTime得到日期部分
LocalDate localDate  = localDateTime.toLocalDate();
System.out.println(localDate); // 2018-05-23

//LocalDateTime得到时间部分
LocalTime localTime = localDateTime.toLocalTime();
System.out.println(localTime); // 16:31:20.582

//LocalDateTime转Date
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
Date date = Date.from(instant);
System.out.println(date); // Wed May 23 16:31:20 CST 2018

//LocalDate转Date
LocalDate localDateOne = LocalDate.now();
Instant instantOne = localDateOne.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date dateOne = Date.from(instantOne);
System.out.println(dateOne); //Wed May 23 00:00:00 CST 2018

//Date转LocalDateTime
Date dateTwo = new Date();
Instant instantTwo = dateTwo.toInstant();
ZoneId zoneTwo = ZoneId.systemDefault();
LocalDateTime localDateTimeOne = LocalDateTime.ofInstant(instantTwo, zoneTwo);
System.out.println(localDateTimeOne); // 2018-05-23T16:41:28.963

 

参考一:https://www.jianshu.com/p/2949db9c3df5

参考二:https://lw900925.github.io/java/java8-newtime-api.html

posted @ 2018-05-07 15:39  艾白羊  阅读(179)  评论(0)    收藏  举报