2015-04-10 2 views
0

В следующем примере я представил себе, что startTime будет интерпретироваться как время в UTC (потому что я положил Z в startTime). Но parseDateTime, анализирует его в локальное время ZOne. Как заставить «parseDateTime» думать, что startTime находится в UTC (используя формат ниже)?разбор строки в UTC

val format = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
val formatter = DateTimeFormat.forPattern(format) 

val startTime = "2014-11-25T08:40:00.611Z" 

val startTimeObj = formatter.parseDateTime(startTime) 
println("startTimeObj : " + startTimeObj) 

startTimeObj: 2014-11-25T08: 40: 00.611-08: 00

+0

Похоже, вы печатаете 'DateTime' объект (с его встроенным в' .toString() ') - объекты DateTime не имеют« формат »(это просто даты) - если вы хотите распечатать дату в определенном формате, вы используете форматтер (как вы делали на первом две строки) – ochi

+0

@ochi: когда я смотрю в отладчике, чтобы узнать, какое значение имеет startTimeObj, он содержит 2014-11-25T08: 40: 00.611-08: 00. Так что мой вопрос в том, что Z в startTime не говорит парсеру, что время в UTC? – user830818

ответ

1

Ваш образец говорит 'Z' который только буквальным 'Z' характер, а не интерпретируется как часовой пояс , Просто цитаты от и так, что ваш шаблон говорит .SSSZ

Конечно, для этого формата вы могли бы просто использовать DateTime.Parse()