JAVA8 获取日期时间LocalDateTime

JAVA8 是Java比较大的版本升级,新增了许多新的特性。如:Lambda、Stream API、DateTime API、Optional等等。

本文主要讲解一下最新的DateTime类的用法。

在这之前我们通常使用Date 和 SimpleDateFormat类来获取日期和格式化日期。Date在新的Java版本中只保留了获取getTime(获取毫秒时间戳)和比较时间的方法,其他均已过时淘汰,SimpleDateFormat则是因为线程不安全,多线程中使用需要在没个线程中创建独立的实例,从Java8以后可以不使用这两个类了。

Date date = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间为: " + f.format(date));

Java8 新增的日期时间API,Date有的LocalDateTime全有

ClassDescription
LocalDate 年, 月, 日 (yyyy-MM-dd)
LocalTime时, 分, 秒 ,毫秒 (HH-mm-ss-ns)
LocalDateTimeyyyy-MM-dd-HH-mm-ss-ns
DateTimeFormatter格式化日期和时间
public static void main(String[] args) {
		System.out.print("Unix Timestamp:\t");
		System.out.println(Instant.now().getEpochSecond());
		
		System.out.print("Unix Timestamp 毫秒:\t");
		System.out.println(Instant.now().toEpochMilli());
		
		//System.currentTimeMillis() 返回Unixtimestamp 毫秒
		System.out.print("System.currentTimeMillis() 秒 / 毫秒:\t");
		System.out.print(System.currentTimeMillis()/1000);
		System.out.print("\t");
		System.out.println(System.currentTimeMillis());
		
		
		System.out.print("LocalDateTime \t");
		System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
		
		System.out.print("LocalDate \t");
		System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
		

        //格式化日期时间
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss"); 
        String dateTime = formatter.format(LocalDateTime.now());
        System.out.println(dateTime);

		
		System.out.print("LocalTime \t");
		System.out.println(LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")));
		
		System.out.println("字符转LocalTime");
		System.out.println(LocalTime.parse("19:03"));
		
		System.out.println("字符转LocalDateTime");
		DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
		System.out.println(LocalDateTime.parse("2022-03-22 19:03",format));
		
		//获取当前时区
		System.out.println(ZoneId.systemDefault());
		System.out.println(ZoneId.of("GMT+00:00"));
		
		
		//根据时区获取时间
		ZoneId gmt = ZoneId.of("GMT+00:00");		
		System.out.println(LocalDateTime.now(gmt));
		System.out.println(LocalDate.now(gmt));
		System.out.println(ZonedDateTime.now(gmt));
		
		//根据时区获取ZoneId
		TimeZone timeZoneUsPacific = TimeZone.getTimeZone("US/Pacific");		
        ZoneId zoneIdUsPacific = timeZoneUsPacific.toZoneId();
        System.out.println("ZoneId = " + zoneIdUsPacific);
        System.out.println(LocalDateTime.now(zoneIdUsPacific));
        
        ZoneId id = ZoneId.of("Europe/Paris");
        System.out.println("ZoneId: " + id);
        System.out.println(LocalDateTime.now(id));
		
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GetCMS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值