首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Timezone格式设置错误(yyyy‘ssZ:mm:ssZ)

Java Timezone格式设置错误(yyyy‘ssZ:mm:ssZ)
EN

Stack Overflow用户
提问于 2022-10-17 06:53:05
回答 2查看 67关注 0票数 1

时区格式不正确。

代码语言:javascript
复制
    String fromDate = "2022-10-14T10:00:00+0300";
    final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    Date date = dateFormat.parse(fromDate);   
    System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(date));

当我跑的时候我得到了我的本地区域

代码语言:javascript
复制
2022-10-14T12:30:00+0430
EN

回答 2

Stack Overflow用户

发布于 2022-10-17 08:26:41

Java Date没有时区和偏移的概念,它实际上是从那个时代开始的一个瞬间,当您使用时区进行格式化时,它静默地使用默认的时区。您已经有了关于遗留API的答案,所以我将发布一个关于java.time的答案,这是一种现代的日期时间API,可以从java 8开始使用。

解析和格式化日期/时间是用DateTimeFormatter完成的。输入字符串只包含偏移量,不包含时区,为了保留此信息,需要将其解析为OffsetDateTime

代码语言:javascript
复制
String fromDate = "2022-10-14T10:00:00+0300";
DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
OffsetDateTime dateTime = OffsetDateTime.parse(fromDate, parseFormatter);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
System.out.println(outputFormatter.format(dateTime));
//prints - 2022-10-14T10:00:00.000+0300
票数 1
EN

Stack Overflow用户

发布于 2022-10-17 07:34:01

代码语言:javascript
复制
`   String fromDate = "2022-10-14T10:00:00+0300";
    final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
       
    Date date = dateFormat.parse(fromDate);   
    dateFormat.setTimeZone(TimeZone.getTimeZone("EAT"));
    System.out.println(dateFormat.format(date));'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74093494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档