目录
- 概述
- Instant
- LocalDateTime
- DateTimeFormatter
- 即时刷新当前时间
<一> 概述
public static void ldtDemo(){
//根据时间数值初始化LocalDateTime
LocalDateTime t1 = LocalDateTime.of(2020,5,18,5,13,0,0);
//将LocalDateTime转换为指定格式的字符串
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String st1 = dtf.format(t1);
System.out.println(st1);
//将字符串解析为LocalDatetTime
LocalDateTime t2 = LocalDateTime.parse(st1,dtf);
System.out.println(t2);
}
<二> Instant
- now
- parse
- ofEpochMilli
- ofEpochSecond
- ☞ 时间格式:2020-04-24T15:14:05.0000Z
- ☞ 没有默认时区,相应的LocalDateTime包含时区
System.out.println(Instant.MIN); //-1000000000-01-01T00:00:00Z
System.out.println(Instant.MAX); //+1000000000-12-31T23:59:59.999999999Z
System.out.println(Instant.EPOCH); //1970-01-01T00:00:00Z
System.out.println(Instant.now()); //2020-04-24T07:09:48.525Z
Instant inst3 = Instant.parse("2020-04-24T15:14:05Z");
Instant inst1 = Instant.ofEpochMilli(new Date().getTime()); //2020-04-24T07:09:48.529Z
Instant inst2 = Instant.ofEpochSecond(10); //1970-01-01T00:00:10Z
System.out.println(inst1);
System.out.println(inst2);
System.out.println(inst3);
<三> LocalDateTime
- now
- parse
- 一个参数 text
- 两个参数 text+formatter
- of(2020, 4, 24, 15, 21, 26, 0)
- ☞ 时间格式:2020-04-24T15:14:05.0000(最后没有Z)
System.out.println(LocalDateTime.MIN); //-999999999-01-01T00:00
System.out.println(LocalDateTime.MAX); //+999999999-12-31T23:59:59.999999999
System.out.println(LocalDateTime.now());
LocalDateTime loca1 = LocalDateTime.parse("2020-04-24T15:14:05");
System.out.println(loca1);
LocalDateTime loca2 = LocalDateTime.of(2020, 4, 24, 15, 21, 26, 0);
int year = loca2.getYear();
int month = loca2.getMonthValue();
int day = loca2.getDayOfMonth();
int hour = loca2.getHour();
int minute = loca2.getMinute();
int second = loca2.getSecond();
int nanoSecond = loca2.getNano();
System.out.println(loca2);
<四> DateTimeFormatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String text = formatter.format(loca1);
System.out.println(text);
LocalDateTime loca3 = LocalDateTime.parse(text, formatter);
System.out.println(loca3);
<五> 即时刷新当前时间
public class FlushNowTime {
public static Thread th_flushNowTime = new Thread("flushNowTime_Thread") {
@Override
public void run() {
while (true) {
// 获取当前时间的字符串
LocalDateTime localDate = LocalDateTime.now();
DayOfWeek week = localDate.getDayOfWeek();
String strWeek = null;
if (week == DayOfWeek.SUNDAY) {
strWeek = "星期日";
} else if (week == DayOfWeek.MONDAY) {
strWeek = "星期一";
} else if (week == DayOfWeek.TUESDAY) {
strWeek = "星期二";
} else if (week == DayOfWeek.WEDNESDAY) {
strWeek = "星期三";
} else if (week == DayOfWeek.THURSDAY) {
strWeek = "星期四";
} else if (week == DayOfWeek.FRIDAY) {
strWeek = "星期五";
} else if (week == DayOfWeek.SATURDAY) {
strWeek = "星期六";
}
String dateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(localDate) + " "
+ strWeek;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dateTime);
}
}
};
}