考虑到夏令时,我正在尝试将GMT时区从其他服务器转换为EST,以显示正确的日期,但无法执行。
GMT时间格式以String
的形式出现在json "yyyy-MM-dd 'T' HH:mm:ss 'Z'"
中。对于这种格式,我们将时区设置为EST,但未获得正确的结果。
示例-日期以"2020-06-02T03:53:57Z"
开头,而EST创建时的正确日期是"2020-06-01T11:53:57Z"
。
答案 0 :(得分:0)
要在两个显式时区之间进行转换,请在SimpleDateFormat
对象上指定用于解析和重新格式化日期字符串的那些时区。
String input = "2020-06-02T03:53:57Z";
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
inputFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = inputFormat.parse(input);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
outputFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println(outputFormat.format(date));
输出
2020-06-01 23:53:57 EDT
如您所见,在6月,时区是EDT
,而不是EST
,并且肯定不是Z
,也就是UTC
。