我的代码使用-Duser.timezone = UTC。
运行我希望用字符串创建一个具有正确时区的Interval。 例如:
“2016-09-14T00:00:00.000-07:00 / 2016-09-15T07:00:00.000-07:00”
Interval.parse(str)
应该给我
[2016-09-14 / 2016-09-15] 。
但总是给我一个UTC时间间隔,而不是-buser.timezone = UTC选项的PST b / c。
我知道要解决这个问题的唯一方法是单调乏味,并涉及以下步骤:
查找偏移对应的时区。 (白名单?或某人已经有名单?)
然后自己创建一个新的Interval。
有更好的方法吗?
答案 0 :(得分:-1)
这应该让你开始:
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);