JAVA - 【JDK1.8线程安全时间类】Instant、LocalDateTime、DateTimeFormatter

目录

  • 概述
  • 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);
			}
		}
	};
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值