【问题标题】:how to print numeric value to DateTime format in java [duplicate]如何在java中将数值打印为DateTime格式[重复]
【发布时间】:2019-07-13 06:39:27
【问题描述】:

在 PHP 中很容易,但在 Java 中会如何。

$value="1562916792";
echo date("Y-m-d h:i:sa", $values['time']);

输出:2019-07-12 01:03:12pm

【问题讨论】:

  • 我想这取决于你从哪里得到你的“数值”。数值代表什么?
  • @Zephyr 从纪元(1970 年 1 月 1 日)到现在还有几秒钟。
  • 在链接的问题中我推荐the knowledgeable answer by Basil Bourque。只有他假设美国/芝加哥而不是美国/丹佛时区,但我认为你可以改变它。

标签: java datetime-format datetime-conversion


【解决方案1】:

为了得到那个时间,我假设你在印度时区,在这种情况下你这样做:

使用 Java 8 时间 API

int value = 1562916792;
System.out.println(Instant.ofEpochSecond(value)
                          .atZone(ZoneId.of("Asia/Kolkata")) // or ZoneId.systemDefault()
                          .format(DateTimeFormatter.ofPattern("uuuu-MM-dd hh:mm:ssa")));

使用旧的 Java 日期 API

int value = 1562916792;
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Kolkata"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ssa").format(value * 1000L));

输出

2019-07-12 01:03:12PM

【讨论】:

  • 同意,所需的输出将与斯里兰卡或伊尼达时区(亚洲/科伦坡或亚洲/加尔各答)一致。
猜你喜欢
  • 2021-04-21
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2019-12-02
  • 2016-10-05
  • 2014-05-02
相关资源
最近更新 更多