Java 获得特定时间的毫秒数

本文详细介绍了如何使用Date类和Calendar类来获取从1970年1月1日到指定日期的时间差,并将其转换为毫秒数。包括废弃的Date类方法Date.UTC()和替代方案Calendar类的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

使用date类:Date.UTC(int year,int  month, int date,int  hrs, int min,int  sec);

long ms = Date.UTC(2009, 0,1, 0,0, 0);//时间:得到从1970年一月一日0时0分0秒,到 

2009年1月1日,0时0分0秒 的毫秒数。


注:Date.UTC()函数已经废弃,不提倡使用.

方法二:

使用Calendar类:

//功能同上

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,2009);
c.set(Calendar.MONTH,0);
c.set(Calendar.DATE,1);
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
long
ms = c.getTimeInMillis();

//通过 从特定时间开始的毫秒数 获得时间的方法:代码继续上面的

long mstime = 91816645*1000;

long utc = ms + mstime;

c.setTimeInMillis(utc); 
Date d = c.getTime();

SimpleDateFormat sf = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss");

S
tring time = sf.format(d);


### Java 中将毫秒转换为 `LocalDateTime` 在 Java 中,可以使用多种方法将毫秒转换为 `LocalDateTime` 对象。以下是几种常见的方式: #### 使用 `Instant` 和 `ZoneId` 可以通过创建一个 `Instant` 实例并将其调整到指定时区来实现毫秒到 `LocalDateTime` 的转换。 ```java import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneOffset; long milliseconds = 1651132520000L; LocalDateTime localDateTime = Instant.ofEpochMilli(milliseconds) .atOffset(ZoneOffset.ofHours(8)) .toLocalDateTime(); System.out.println(localDateTime); ``` 这段代码展示了如何利用 `Instant.ofEpochMilli()` 方法从给定的毫秒创建一个新的瞬态时刻对象,再通过设置合适的偏移量(这里为中国标准时间 CST, UTC+8),最终得到对应的本地日期时间表示形式[^2]。 #### 处理不同地区的时间差异 由于不同的地理位置有不同的时区设定,在实际应用中应当考虑到这一点。如果应用程序运行在全球范围内,则建议始终采用带有时区信息的据结构如 `ZonedDateTime` 来代替简单的 `LocalDateTime` 类型,从而确保准确性[^5]。 对于那些希望保持操作简单而不涉及复杂的时区逻辑的情况,默认情况下也可以继续沿用上述提到的方法之一来进行基本的功能开发工作。 #### 注意事项 需要注意的是,当涉及到跨多个不同时区的操作时,应该特别小心处理好这些细节问题;另外就是关于夏令时(Daylight Saving Time),某些特定区域每年会有一段时间实行提前一小时的标准时间制度,这同样会影响到程序内部所使用的具体时间节点计算过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值