我试图使用java 8或utils包将string中的datetime转换为即时。
例如。
String requestTime = "04:30 PM, Sat 5/12/2018";
至
Instant reqInstant should result in 2018-05-12T20:30:00.000Z
reqString位于美国/多伦多时区。
这是我试过的
String strReqDelTime = "04:30 PM, Sat 5/12/2018";
Date date = new SimpleDateFormat("hh:mm a, EEE MM/dd/yyyy").parse(requestTime);
Instant reqInstant = date.toInstant();
上面的代码导致了"2018-05-12T23:30:00Z"
。
任何帮助表示赞赏。
发布于 2019-05-30 09:30:54
您的计算机(服务器)中的时区似乎是美国太平洋夏令时(GMT-7),但您预计会有美国东部夏令时(GMT-4)的结果。
Instant.toString()以ISO-8601格式返回UTC(GMT + 0)DateTime。(末尾的'Z'表示UTC)。
SimpleDateFormat威胁DateTime字符串在未指定的计算机的默认时区中。并且您的输入未指定时区。
所以,你需要在输入的时区做些什么。
PS。在DST东部的矿山机器上,您的代码完全按照您的预期给出了结果。
https://stackoverflow.com/questions/-100006863
复制相似问题