当前位置: 首页 > 面试题库 >

如何从LocalDate和LocalDateTime中提取纪元?

杭志泽
2023-03-14
问题内容

如何LongLocalDateTime或的实例提取纪元值LocalDate?我已经尝试了以下方法,但是它给了我其他结果:

LocalDateTime time = LocalDateTime.parse("04.02.2014  19:51:01", DateTimeFormatter.ofPattern("dd.MM.yyyy  HH:mm:ss"));
System.out.println(time.getLong(ChronoField.SECOND_OF_DAY)); // gives 71461
System.out.println(time.getLong(ChronoField.EPOCH_DAY)); // gives 16105

我想要的只是1391539861本地datetime 的值"04.02.2014 19:51:01"。我的时区是Europe/Oslo夏令时的UTC + 1。


问题答案:

这些类LocalDateLocalDateTime不包含有关 时区time offset的信息
,并且自epoch以来的秒数如果没有这些信息将是模棱两可的。但是,对象有几种方法可以通过传递ZoneId实例将其转换为具有时区的日期/时间对象。

本地日期

LocalDate date = ...;
ZoneId zoneId = ZoneId.systemDefault(); // or: ZoneId.of("Europe/Oslo");
long epoch = date.atStartOfDay(zoneId).toEpochSecond();

LocalDateTime

LocalDateTime time = ...;
ZoneId zoneId = ZoneId.systemDefault(); // or: ZoneId.of("Europe/Oslo");
long epoch = time.atZone(zoneId).toEpochSecond();


 类似资料:
  • 我是否可以使用一些接口或抽象类,这样我就不必编写两次相同的代码了?我找不到这样的接口。正如您所看到的,我只使用了'is before'和'is after'方法。

  • 我正在使用JodaTime获取创建帐户的日期和时间。格式为 当我得到它时,我把它作为字符串存储在我的数据库中,所以我四处寻找将它从字符串格式化为LocalDate的方法,但在我在网上找到的任何东西中都没有成功。我的下一步是一个可怕的解决方案,在我看来,循环遍历字符串,直到找到T,并删除它后面的所有内容。所以我只剩下 但理想情况下,如果可能,将日期设置为

  • 我知道Stackoverflow上有很多关于这个主题的帖子,我确信我已经阅读了几乎所有的帖子,但我仍在努力让它发挥作用,希望能得到任何指导。 这是我使用的Spring家长和Jackson依赖项: 在我的应用程序配置中,我尝试使用: 这是我正在测试的模型。(我试图在5-6个模型中达到相同的效果)。 我希望我能找到一种适用于全球的方法,而不需要我单独注释每个字段。我在使用java.util。日期之前,

  • PLMN标识符(3字节),由MCC(移动国家代码)和MNC(移动网络代码)组成。 我被告知(尽管我持怀疑态度),这应该导致: 但是我一辈子都想不出如何从PLMN中得到结果,那么我该如何解析呢?

  • 问题内容: 我想知道如果有一种方法,因为1970年1月1日(时期),以获得当前毫秒使用新的,或Java的8类。 已知的方法如下: 要么 问题答案: 我不能完全确定“当前毫秒”的含义,但我假设这是自“纪元”(即UTC 1970年1月1日午夜)以来的毫秒数。 如果你想找到,因为时代的毫秒数 眼下, 然后用作为nubian菜鸟指出。如果是这样,则没有理由使用任何新的java.time API来执行此操作

  • 什么给了?MOXy似乎支持这些类型的序列化,但不支持反序列化? Moxy版本: