【问题标题】:Convert timezone from CEST TIME to UTC in Android在Android中将时区从CEST TIME转换为UTC
【发布时间】:2020-09-13 12:05:57
【问题描述】:
我正在使用 Api 级别 21 在 Android Studio 中构建一个应用程序。
我必须从 CEST TIME | 转换日期格林威治标准时间 | CET UTC 时间。
这是格式化时间。
SimpleDateFormat utcFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String dateToConvert = "2020-05-26T17:50:50.456";
这个时间是CEST时区格式,我想转换成UTC时间。
【问题讨论】:
-
-
顺便考虑扔掉长期过时且臭名昭著的麻烦SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。
标签:
java
android
timezone
utc
datetime-conversion
【解决方案1】:
要将日期“转换”为特定时区,请在格式化 Date 值时指定时区。
在以下示例中,为输入格式和输出格式都明确指定了时区,因此该示例不依赖于运行代码的设备的默认时区。如果您想使用默认时区,当然可以不指定输入时区。
TimeZone centralEurope = TimeZone.getTimeZone("Europe/Paris");
TimeZone UTC = TimeZone.getTimeZone("UTC");
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
inputFormat.setTimeZone(centralEurope);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
outputFormat.setTimeZone(UTC);
String dateToConvert = "2020-05-26T17:50:50.456";
Date date = inputFormat.parse(dateToConvert);
System.out.println(outputFormat.format(date));
输出
2020-05-26T15:50:50.456