gpt4 book ai didi

java - 在 Java 中将 Epoch 秒转换为日期和时间格式

转载 作者:IT老高 更新时间:2023-10-28 20:44:06 25 4
gpt4 key购买 nike

自 1970 年 1 月 1 日 UTC(纪元时间)以来,我还有几秒钟。

1320105600

我需要将秒数转换为以下格式的日期和时间。

Friday,November 4,2011 5:00,AM

我怎样才能做到这一点?

最佳答案

如果您受限于旧版 java.util.Datejava.util.Calendar API,您需要考虑时间戳在毫秒,而不是秒。因此,您首先需要将其乘以 1000 以获得以毫秒为单位的时间戳。

long seconds = 1320105600;
long millis = seconds * 1000;

这样你就可以把它喂给 a.o. java.util.Date 的构造函数,最后使用 SimpleDateFormat 以所需的日期格式模式将 java.util.Date 转换为 java.lang.String,如有必要,使用预定义的时区(否则它将使用系统 default time zone ,它本身不是 GMT/UTC,因此格式化的时间可能会关闭)。

Date date = new Date(millis);
SimpleDateFormat sdf = new SimpleDateFormat("EEEE,MMMM d,yyyy h:mm,a", Locale.ENGLISH);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate); // Tuesday,November 1,2011 12:00,AM

如果您已经在使用 Java8,那么有一个 LocalDateTime#ofEpochSecond() 可以让您直接输入纪元秒数,而无需乘以毫秒。

LocalDateTime dateTime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE,MMMM d,yyyy h:mm,a", Locale.ENGLISH);
String formattedDate = dateTime.format(formatter);
System.out.println(formattedDate); // Tuesday,November 1,2011 12:00,AM

关于java - 在 Java 中将 Epoch 秒转换为日期和时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8262333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com