/*
DateTimeFormatter:格式化或解析日期、时间
类似于SimpleDateFormat
*/
@Test
public void test3(){
//方式一:预定义的标准格式 如:
//ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
DateTimeFormatter formatter = DateTimeFormatter.DateTimeFormatter.ofPattern("yyyy-MM-dd");
//格式化: 日期 ---> 字符串
LocalDateTime localDateTime = LocalDateTime.now();
String str1 = formatter.format(localDateTime);
System.out.println(localDateTime);
System.out.println(str1);//2022-04-25T14:54:57.0639562
//解析:字符串 ---> 日期
TemporalAccessor parse = formatter.parse("2022-04-25T14:54:57.0639562");
System.out.println(parse);//{},ISO resolved to 2022-04-25T14:54:57.063956200
//方式二:本地化相关的格式 如:ofLocalizedDateTime(FormatStyle.LONG)
//FormatStyle.LONG/FormatStyle.MEDIUM/FormatStyle.SHORT :适用于LocalDateTime
DateTimeFormatter formatter1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
//格式化
String str2 = formatter1.format(localDateTime);
System.out.println(str2);// 2022/4/25 下午3:08
// 本地化相关的格式 如:ofLocalizedDate()
//FormatStyle.FULL/FormatStyle.LONG/FormatStyle.SHORT/FormatStyle.MEDIUM :适用于LocalDate
DateTimeFormatter formatter2 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
//格式化
String str3 = formatter2.format(LocalDate.now());
System.out.println(str3);//2022年4月25日星期一
//方式三:自定义的格式 如:ofPattern("yyyy-MM-dd hh:mm:ss")
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//格式化
String str4 = formatter3.format(LocalDateTime.now());
System.out.println(str4);//2022-04-25 03:22:59
//解析
TemporalAccessor accessor = formatter3.parse("2022-04-25 03:22:59");
System.out.println(accessor);
//{MinuteOfHour=22, MicroOfSecond=0, HourOfAmPm=3, NanoOfSecond=0, SecondOfMinute=59, MilliOfSecond=0},ISO resolved to 2022-04-25
}
Date date = new Date();
//如果根本不想显示时分秒,可以直接使用LocalDate类型:
LocalDate date1 = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//localDate 转 date
Date date11 = Date.from(date1.atStartOfDay(ZoneId.systemDefault()).toInstant());
can.setTime(date11);
can.add(Calendar.DAY_OF_MONTH,7);
//date 转 localDate LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); //localDate 转 date Date from = Date.from(now.atStartOfDay(ZoneId.systemDefault()).toInstant());
Java获取当天0时0分0秒时间的方法
Java获取当天0时0分0秒时间的方法
Date date = new Date(86400000L * (int)(System.currentTimeMillis() / 86400000.0)-1000*60*60*8);