java.time API相关用法

时间戳

获取时间戳的方式

方式一(推荐)
Long ts  = Instant.now().toEpochMilli()
方式二
Long ts  =  System.currentTimeMillis()

时间戳转换

时间戳转为LocalDateTime
public LocalDateTime transfer(Long timestamp){
      Instant instant = Instant.ofEpochMilli(timestamp);
      return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
}
LocalDateTime转为时间戳
public Long transfer(LocalDateTime time){
     Instant instant = time.atZone(ZoneId.systemDefault()).toInstant();
     return instant.toEpochMilli();
}

时间戳的应用

通过时间戳计算代码执行时间

计算时间戳的差值
long start = Instant.now().toEpochMilli();
 /*-------------开始-------------------
 			   代码逻辑
	-------------结束-------------------*/
long end = Instant.now().toEpochMilli();
System.out.println("共耗时:" + ((end - start) / 1000) + "s");
将时间戳的差转为指定格式
Long time1 = Instant.now().toEpochMilli(),
	 time2 = Instant.now().plusSeconds(3000).toEpochMilli();
// 将毫秒数转换为Duration对象
Duration duration = Duration.ofMillis(time2 - time1);
// 从Duration中获取各时间单位
long hours = duration.toHours();
long minutes = duration.minusDays(days).minusHours(hours).toMinutes();
long seconds = duration.minusDays(days).minusHours(hours).minusMinutes(minutes).getSeconds();
// 输出结果
System.out.println(hours + "小时" + minutes + "分钟" + seconds + "秒");

时区相关

// 创建一个 LocalDateTime 实例  
LocalDateTime localDateTime = LocalDateTime.of(2023, 10, 1, 15, 30);  

// 定义一个时区  
ZoneId zoneId = ZoneId.of("Asia/Shanghai");  

// 将 LocalDateTime 转换为 ZonedDateTime  
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);  

 // 定义一个DateTimeFormatter实例,用于将ZonedDateTime格式化为"yyyy-MM-dd HH:mm:ss"格式  
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  

// 使用formatter将zonedDateTime格式化为字符串  
String formattedDateTime = zonedDateTime.format(formatter);  
System.out.println(formattedDateTime); // 输出: 2023-10-01 15:30:00  
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值