根据字符串"2016-09-14T00:00:00.000-07:00/2016-09-15T00:00:00.000-07:00"确定时区



我的代码使用-Duser.timezone=UTC运行。

我希望从字符串中创建一个具有正确时区的间隔。例如:

"2016 - 09 - 14 - t00:00:00.000 07:00/2016 - 09 - 15 - t07:00:00.000 07:00"

Interval.parse(str)应该给我

[2016 - 09 - 14/2016 - 09 - 15] PST

但这总是给我一个UTC的间隔,而不是-Duser的PST b/c。时区= UTC选项。

我所知道的解决这个问题的唯一方法是繁琐的,包括以下步骤:

    解析字符串
  1. 确定偏移量
  2. 查找偏移量对应的时区。(白名单?还是有人已经有清单了?)

有更好的方法吗?

这应该可以让你开始:

    String dateString = "2016-09-14T00:00:00.000-0700/2016-09-15T07:00:00.000-0700";
    String datesInString[] = dateString.split("/");
    SimpleDateFormat inputDateFormat = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss.SSSZ");
    SimpleDateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    outputDateFormat.setTimeZone(TimeZone.getTimeZone("PST"));
    Date date0 = inputDateFormat.parse(datesInString[0]);
    Date date1 = inputDateFormat.parse(datesInString[1]);
    String result = outputDateFormat.format(date0) + "/"
            + outputDateFormat.format(date1) + " "
            + outputDateFormat.getTimeZone().getID();
    System.out.println(result);

相关内容

  • 没有找到相关文章

最新更新