如何在Java中将一个时区的纪元时间转换为另一个时区的纪元时间?

时间:2019-03-04 11:58:23

标签: java timezone

我已获得GMT时区的新纪元时间,我需要根据提供的用户时区将此时间转换为其他时区。

格林尼治标准时间的超时= 1551700619     时间转换为IST = 1551680819

请帮助我。

1 个答案:

答案 0 :(得分:1)

几件事:

  • “ Epoch time”是错误的称呼,应从我们的词汇表(IMHO)中删除。 More on this here。您所拥有的被正确地称为“ Unix时间戳”。

  • 这种形式的时间戳定义为自Unix纪元(1970-01-01 00:00:00 UTC)以来的秒数。

  • 因为它们基于UTC,所以就UTC而言,它们总是 。将其表示为处于不同时区是无效的,并且随着该时间戳的传递,可能导致进一步的混乱和破坏。

  • 时间戳记15517006191551680819是两个不同的时间点,相隔5个小时30分钟。换句话说,如果在这两个时间戳记中都发生了事件,并且您在印度并且正在与英国的某人通电话,那么您都将经历第一个事件,然后必须等待5小时30分钟,然后两者体验第二件事。

    1551700619 == 2019-03-04T11:56:59Z == 2019-03-04T17:26:59+05:30
    1551680819 == 2019-03-04T06:26:59Z == 2019-03-04T11:56:59+05:30