【问题标题】:How to convert UTC to SGT如何将 UTC 转换为 SGT
【发布时间】:2018-05-10 09:47:48
【问题描述】:

以下是我用来将 UTC 转换为 SGT 的两种方法,但效果不大。请帮我将 UTC 转换为 SGT。

List<String> list0 = new ArrayList<>();
List<String> list1 = new ArrayList<>();

public void FirstTradingTime() throws ParseException {
     list0 .add("2018-05-10T05:56:35.557Z");
       for(int i=0; i<list0 .size();i++) {
       String FirstTime = list0 .get(i);
       DateFormat pstFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
       pstFormat.setTimeZone(TimeZone.getTimeZone("PST"));
       Date date = pstFormat.parse(String.valueOf(FirstTime));          
       DateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
       utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
       list1 .add(utcFormat.format(date));
  }
  System.out.println("FirstTradingTime "+list1 ;
}

以上方法获取我的输出:[2018-05-10 12:56:35.557]

我的预期输出是:2018-05-10 13:56:35.557

List<String> list2 = new ArrayList<>();
List<String> list3 = new ArrayList<>();

public void FirstTradingTime() throws ParseException {
   list2 .add("2018-05-10T05:56:35.557Z");
   for (int i = 0; i < list2 .size(); i++) {
       String Str = list2 .get(i);
       Instant timestamp = Instant.parse(Str);
       ZonedDateTime SGTtime = timestamp.atZone(ZoneId.of("Singapore"));

       list3 .add(String.valueOf(SGTtime));
       System.out.println(list3);
   }
}

上述方法获取了我的输出:[2018-05-10T13:56:35.557+08:00[Singapore]]

预期输出:2018-05-10 13:56:35.557

【问题讨论】:

  • Timezone conversion的可能重复
  • 您的第二个输出似乎与您的预期输出相同,对吗?

标签: java utc


【解决方案1】:

错误出现在TimeZone.getTimeZone("SGT"),因为 ID SGT 不存在。该时区的 ID 是 Asia/Singapore,您可以使用 TimeZone.getTimeZone("Asia/Singapore") 获取它。

试试这个:

DateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date utcDate = utcFormat.parse("2018-05-10T05:56:35.557");

DateFormat sgtFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
sgtFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
String sgtString = sgtFormat.format(utcDate);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多