微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在java中获取TimeZone偏移值

如何解决如何在java中获取TimeZone偏移值

我有一个来自设备的日期,我想用 Java 执行以下操作:

  1. 我想将此日期“2021-05-27T18:47:07+0530”解析为yyyy-mm-dd HH:MM:SS
  2. 获取日期的偏移量值,以便我可以将时区偏移量设为 +05:30 或它来自的任何时区。

对于第一个我已经这样做并且看起来它有效,但是任何更好的更小的方法也会很方便:


        String date = "2021-05-27T18:47:07+0530";
        String inputPattern = "yyyy-MM-dd'T'HH:mm:ss+SSSS";
        String outputPattern = "yyyy-MM-dd HH:mm:ss";
        LocalDateTime inputDate = null;
        String outputDate = null;
        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputPattern,Locale.ENGLISH);
        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputPattern,Locale.ENGLISH);
        inputDate = LocalDateTime.parse(date,inputFormatter);
        outputDate = outputFormatter.format(inputDate);
        System.out.println("inputDate: " + inputDate);
        System.out.println("outputDate: " + outputDate);

输出是:

inputDate: 2021-05-27T18:47:07.053
outputDate: 2021-05-27 18:47:07

在这种情况下,我不知道如何获取时区的偏移值。

有很多建议,包括使用 SimpleDateFormat 和 zoneddatetime 等,但考虑到偏移值可以是动态的,即它可以是 +05:30、+09:00 等,这应该是最好的答案。

在这种情况下提供帮助。

解决方法

试试这个。

String dateTime = "2021-05-27T18:47:07+0530";
String inputPattern = "yyyy-MM-dd'T'HH:mm:ssZ";
String outputPattern = "yyyy-MM-dd HH:mm:ss";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ",Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.parse(dateTime,dtf);
ZoneOffset tz = zdt.getOffset();
System.out.println(tz);
System.out.println(zdt.format(DateTimeFormatter.ofPattern(outputPattern,Locale.ENGLISH)));

印刷品

+05:30
2021-05-27 18:47:07

分区日期时间也可以使用与最初解析时相同的格式重新打印。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?