Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda DateTime到Unix DateTime_Java_Jodatime_Unix Timestamp - Fatal编程技术网

Java Joda DateTime到Unix DateTime

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 为完整

这很奇怪,但是我没有找到任何关于将Joda(Time)
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);
    }