【发布时间】:2019-06-05 02:28:39
【问题描述】:
我正在尝试将本地时区的日期时间转换为 UTC 日期时间。
Date localDate; // this is local date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ") ;
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateStr = simpleDateFormat.format(localDate);
我在dateStr 中得到正确转换的 UTC 时间,现在我想将其转换为仅具有 UTC 时区的 Date 对象
但是当我这样做的那一刻,我又得到了localDate。
//converting string to date object
simpleDateFormat.parse(dateStr)
有谁知道如何将本地日期对象转换为 UTC 日期对象
这是我在调试时得到的值
这里 dateStr 以 UTC 显示正确的日期,但 utcDate 对象显示的是当地时间
【问题讨论】:
-
顺便考虑扔掉长期过时且臭名昭著的麻烦
SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。 -
你不能。
Date没有时区。 (不,您的屏幕截图没有显示Date的值,它显示了调用其toString方法的结果。令人困惑的是Date使用您的JVM 的时区来生成从toString返回的字符串。 )
标签: java android date datetime utc