【问题标题】: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

【讨论】:

    猜你喜欢
    • 2020-08-18
    • 2016-09-16
    • 2020-06-24
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2013-10-22
    • 2022-01-11
    • 2022-11-13
    相关资源
    最近更新 更多