Java Joda DateTime到Unix DateTime
这很奇怪,但是我没有找到任何关于将Joda(Time)Java Joda DateTime到Unix DateTime,java,jodatime,unix-timestamp,Java,Jodatime,Unix Timestamp,这很奇怪,但是我没有找到任何关于将Joda(Time)DateTime转换为Unix DateTime(或timestamp,以正确的名称为准)的结果。如何执行此操作?从BaseDateTime继承的任何对象(包括DateTime)都有此方法 public long getMillis() 据it部门称: 获取Java纪元1970-01-01T00:00:00Z中日期时间瞬间的毫秒数 因此,获得秒数的一个有效示例是: new DateTime().getMillis() / 1000 为完整
DateTime
转换为Unix DateTime(或timestamp,以正确的名称为准)的结果。如何执行此操作?从BaseDateTime
继承的任何对象(包括DateTime
)都有此方法
public long getMillis()
据it部门称:
获取Java纪元1970-01-01T00:00:00Z中日期时间瞬间的毫秒数
因此,获得秒数的一个有效示例是:
new DateTime().getMillis() / 1000
为完整性起见,定义如下:
Unix时间或POSIX时间是一种用于描述时间瞬间的系统,定义为自1970年1月1日星期四00:00:00协调世界时(UTC)以来经过的秒数,不包括闰秒
您还可以通过使用以下命令删除幻数除法来进一步改进它:
import java.util.concurrent.TimeUnit;
TimeUnit.millides.toSeconds(new DateTime().getMillis());
Java8添加了一个用于处理日期和时间的新API。使用Java8,您可以使用
long unixTimestamp = Instant.now().getEpochSecond();
好的,谢谢你的提示。相应地编辑了答案。建议改进以去除常数TimeUnit.millides.toSeconds(new DateTime().getMillis())`这是关于Joda DateTime的问题,这有什么关系?是的,他在答案中使用并链接到Joda的
DateTime
。代码行很好。与问题无关。这个答案有什么关系?从字面上看,这不是问题的答案。
@Test
public void covertDateTimeToEpoch() {
DateTime dateTime = DateTime.parse("2020-07-09T04:30:45.781Z");
long epochMilli = dateTime.toDate().toInstant().toEpochMilli();
assertEquals(1594269045781L, epochMilli);
}