gpt4 book ai didi

Java 时区时间格式

转载 作者:行者123 更新时间:2023-12-02 09:19:33 25 4
gpt4 key购买 nike

我正在尝试以 (String) 格式获取日期的输出:

20170801​ ​123030​ ​America/Los_Angeles

但是使用这段代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd hhmmss Z", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println(sdf.format(new java.util.Date()));

我得到的输出为(注意区域部分):

20174904 024908 -0700

知道如何解决吗?我需要打印 "​America/Los_Angeles" 而不是 "-0700"

最佳答案

看起来像 SimpleDateFormat不支持你想要的。

以下是可能的格式:

z   Time zone   General time zone   Pacific Standard Time; PST; GMT-08:00  
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

您可以在格式化日期后添加“America/Los_Angeles”:

TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");
DateFormat sdf = new SimpleDateFormat("yyyyMMdd hhmmss", Locale.US);
sdf.setTimeZone(timeZone);
System.out.println(sdf.format(new Date()) + " " + timeZone.getID());

DateFormat sdfWithTimeZone = new SimpleDateFormat("yyyyMMdd hhmmss zzzz", Locale.US);
sdfWithTimeZone.setTimeZone(timeZone);
System.out.println(sdfWithTimeZone.format(new Date()));

输出:

20171004 031611 America/Los_Angeles
20171004 031611 Pacific Daylight Time

关于Java 时区时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574775/

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