如何将windows时区转换为Java时区?
我将windows时区作为输入,我想将其转换为Java中的UTC时间。某些windows时区与Java时区不同。 例如:如何将windows时区转换为Java时区?,java,windows,Java,Windows,我将windows时区作为输入,我想将其转换为Java中的UTC时间。某些windows时区与Java时区不同。 例如: String input = "13/01/2020 10:46:10 PST" ; DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss zz") ; ZonedDateTime zdt = ZonedDateTime.parse( input , f ) ; System.out.p
String input = "13/01/2020 10:46:10 PST" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss zz") ;
ZonedDateTime zdt = ZonedDateTime.parse( input , f ) ;
System.out.println( "zdt.toString(): " + zdt ) ;
Windows时区=MPST(马来半岛标准时间)
等效爪哇时区=新加坡标准时间
我的输入类似于-13/01/2020 10:46:10 MPST。因此,当我尝试将此日期格式转换为UTC时,我得到了java.text.ParseException:Unparseable date:“13/01/2020 10:46:10 MPST”
请帮忙
提前感谢避免时区的伪代码
媒体中常见的2-4个字母的伪码不是实际时区。诸如IST
、PST
、CST
和您的MPST
等值都不是标准化的,甚至不是唯一的
仅使用格式为大陆/地区
的正确时区名称。你看这个可能过时了
020-01-15T08:02:26.612494+08:00[亚洲/吉隆坡]
你看
本课程将尝试通过使用2-4个字母的伪时区来猜测实时时区。例如:
String input = "13/01/2020 10:46:10 PST" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss zz") ;
ZonedDateTime zdt = ZonedDateTime.parse( input , f ) ;
System.out.println( "zdt.toString(): " + zdt ) ;
zdt.toString():2020-01-13T10:46:10-08:00[美国/洛杉矶]
但是猜测MPST失败,出现运行时错误
ISO 8601
在任何情况下,如PST
或MPST
,都应该返回数据源教育这些人了解标准,该标准旨在以文本形式交换日期时间值
顺便说一句,上面看到的类的
toString
方法通过明智地在方括号中添加时区名称扩展了ISO 8601标准格式。“MPST”不是Java已知的标准时区标识符。如果它总是“MPST”,则可以将其视为字符串中的文本。(另外:不要使用)您是如何尝试转换导致ParseException
的日期时间的?请告诉我们密码。