gpt4 book ai didi

java - 如何使用 SimpleDateFormat 更改时区

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:16 25 4
gpt4 key购买 nike

我想将日期从此格式转换为 Tue Sep 08 14:27:00 IST 20152015-09-08T14:27:00-0500 如何使用 SimpleDateFormat 执行此操作?

我尝试过这样的方式

Calendar cl = Calendar.getInstance();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
ft.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
ft.format(cl.getTime());

上面的代码给出输出2015-09-08T04:57:00-0400,但我只想更改时区,它应该是-0500

我怎样才能做到这一点?

最佳答案

SimpleDateFormat 使用 Calendar 实例来处理Dates。如果您更改时区,此 Calendar 实例的时区也会更改。如果您真的只想更改输出 - 在您的情况下是时区,而不更改时间(我不知道您为什么要这样做,但我假设您有原因),您可以这样做:

Calendar cl = Calendar.getInstance();
TimeZone tz = TimeZone.getTimeZone("US/Eastern");//TimeZone.getDefault();
int offset = tz.getRawOffset();
String offsetStr = ((offset < 0) ? "-" : "+") + String.format("%02d%02d",
Math.abs(offset / 3600000), (offset / 60000) % 60);
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'" + offsetStr+"'");
String dt = ft.format(cl.getTime());

关于java - 如何使用 SimpleDateFormat 更改时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187353/

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