2017-01-30 3 views
1

그래서 나는 기본적으로 날짜 - 시간 문자열을 가지고OffsetDateTime 시간이 시간대 내가하려고 할 때

val dateString = "2016-01-01T01:30:55.000+00:00" 
println("before: " + dateString) 
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS+hh:mm") 
val date = OffsetDateTime.parse(dateString) 
println("after: " + date.format(formatter)) 

그러나 정확히 같은 형식으로 반환해야 코드의 조각이 오프셋 변화하고 다시 변환 그것은 문자열로, 나는 다른 오프셋을 얻고있다!

before: 2016-01-01T01:30:55.000+00:00 
after: 2016-01-01T01:30:55.000+01:30 

내가 여기서 잘못하고있는 것이 있습니까?

감사합니다.

답변

0

OffsetDateTime.parse(CharSequence text)의 기본 DateTimeFormatter는 yyyy-MM-dd'T'HH:mm:ss+hh:mm (".SSS"없음)입니다.

오류가 있다고 생각됩니다.

formatter 변수를 메서드의 두 번째 매개 변수로 전달하면 올바르게 작동합니다.

+0

그래서 문제는 내가 + hh : mm을 가졌다면 .SSS를 읽을 수 없다는 것입니다. 그런 다음 기술적으로 데이터가 손실됩니다. 두 가지 값을 유지할 방법이 없습니까? –

3

+hh:mm은 시간대 오프셋에 올바른 형식이 아닙니다. 대신 documentation에 따라 XXX을 사용해야합니다.

관련 문제