在考虑本地时区的Java中将日期转换为epochseconds

问题描述 投票:0回答:2

我想将日期转换为纪元范围(当天的12 AM,当天的格林尼治标准时间11.59 PM)。

  1. fromDate = 2019-10-25T00:00:00-07:00,toDate = 2019-10-25T23:59:59-07:00:想要返回(1571986800,1572073199)(相当于GMT十月的时间戳25,2019 7:00:00 AM,GMT October 26,2019 6:59:59 AM)
  2. fromDate = 2019-10-24T00:00:00-07:00,toDate = 2019-10-24T23:59:59-07:00:想要返回(1571900400,1571986799)(相当于格林尼治标准时间10月的时间戳24,2019 7:00:00 AM,GMT October 25,2019 6:59:59 AM)

我的尝试:

fromDate = String.valueOf(formatter.parse(fromDate.substring(0, 19)).toInstant().getEpochSecond());
toDate = String.valueOf(formatter.parse(toDate.substring(0, 19)).toInstant().getEpochSecond());
epochDateRange.append("(").append(fromDate).append(",").append(toDate).append(")");

[通过设置为其他时区进行调试时:即在eclipse处添加以下参数-调试配置

'-Duser.timezone=Asia/Kuala_Lumpur'
  1. 对于上述时区,它在10月25日返回(1571932800,1572019199),但想要的结果是(1571986800,1572073199)]]

  2. [[对于上述时区,在10月24日,它返回(1571846400,1571932799),但想要的结果是(1571900400,1571986799)
  3. 任何帮助将不胜感激。谢谢。

我想将日期转换为纪元范围(当天的12 AM,当天的格林尼治标准时间11.59 PM)。 fromDate = 2019-10-25T00:00:00-07:00,toDate = 2019-10-25T23:59:59-07:00:想返回(1571986800,...

java timezone epoch
2个回答
2
投票
您的问题非常令人困惑。因此,我只能猜测您正在尝试做什么。但是主要的问题可能是您误解了什么是“从时代算起”。

0
投票
由于您的字符串包含UTC偏移量,因此您需要解析该偏移量以获得正确的时间。
© www.soinside.com 2019 - 2024. All rights reserved.