鉴于我有这样的字符串日期
val date = "2019-01-07T13:54:00+0000"
如何将此日期解析为其他时区,例如“亚洲/加尔各答”?
我正在尝试:
val zone = DateTimeZone.forID("Asia/Kolkata")
val resultMillis = ISODateTimeFormat
.dateTimeParser()
.withZone(zone)
.parseDateTime(date)
但是没有用
答案 0 :(得分:1)
这是一个分为两个步骤的过程:您分析字符串中的偏移量或时区,然后转换为所需的时区。我只能编写Java代码,我相信您可以翻译:
DateTimeZone zone = DateTimeZone.forID("Asia/Kolkata");
String date = "2019-01-07T13:54:00+0000";
DateTime dt = ISODateTimeFormat.dateTimeParser()
.parseDateTime(date)
.withZone(zone);
System.out.println(dt);
输出为:
2019-01-07T19:24:00.000 + 05:30
您快到了。从文字上看,我只是将呼叫交换到withZone
和parseDateTime
。
答案 1 :(得分:0)
TimeZone
类超出了我的脑海:
val date = "2019-01-07T13:54:00+0000"
val zone = TimeZone.getTimeZone("Asia/Kolkata")
其中Calendar
了解:
val calendar = Calendar.getInstance(zone)
然后SimpleDateFormat
应该做:
val format = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
val simpleDateFormat = new SimpleDateFormat(format, Locale.ENGLISH);
calendar.setTime(sdf.parse(date));