GMT datetime을 현지 시간대 datetime으로 변환

유리

Java 8에서는 ISO 8601 형식의 GMT datetime에서 로컬 datetime (GMT + 1)을 가져 오는 방법이 필요합니다.

간단한 예 : 클라이언트가이 날짜 시간을 나에게 보냅니다 (서버) "2020-01-11T23:00:00.000Z". 사용자가 날짜 선택기에서 2020 년 1 월 12 일을 선택할 때 클라이언트 가이 날짜를 보냅니다. GMT + 1의 경우 1 월 12 일이지만 GMT의 경우 전날입니다.

위의 이유로 저는이 날짜 시간이 2020 년 1 월 11 일이 아니라 GMT + 1의 2020 년 1 월 12 일이라는 것을 알고 있습니다.

그래서이 값이 필요합니다 "2020-01-12T00:00:00.000"

정확히 말하면 나는 SimpleDateFormat에 이것을 인쇄 그러나 다만 은밀한 할 필요가 없습니다 "2020-01-11T23:00:00.000Z""2020-01-12T00:00:00.000"java.util.Date가 클래스 필드에

감사.

안드레아스

문제는 소스 시스템이 순수한 날짜 값을 취했지만 자정에 시간을 추가 한 다음 UTC로 변환했지만 java.util.Date기본적으로 로컬 시간대, 즉 JVM의 기본 시간으로 인쇄되는 에서 순수한 날짜 값을 원한다는 것입니다. 존.

따라서 문자열을 구문 분석하고 값을 소스 시스템의 시간대로 되돌려 야하며 현지 시간을 자신의 JVM 기본 시간대의 시간으로 처리해야합니다.

다음과 같이 모든 중간 유형을 표시 할 수 있습니다.

String sourceStr = "2020-01-11T23:00:00.000Z";
ZoneId sourceTimeZone = ZoneOffset.ofHours(1); // Use real zone of source, e.g. ZoneId.of("Europe/Paris");

// Parse Zulu date string as zoned date/time in source time zone
Instant sourceInstant = Instant.parse(sourceStr);
ZonedDateTime sourceZoned = sourceInstant.atZone(sourceTimeZone);

// Convert to util.Date in local time zone
ZonedDateTime localZoned = sourceZoned.withZoneSameLocal(ZoneId.systemDefault());
Instant localInstant = localZoned.toInstant();
Date localDate = Date.from(localInstant); // <== This is your desired result

// Print value in ISO 8601 format
String localStr = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(localDate);
System.out.println(localStr);

산출

2020-01-12T00:00:00.000

물론 코드는 함께 병합 될 수 있습니다.

String input = "2020-01-11T23:00:00.000Z";

Date date = Date.from(Instant.parse(input).atZone(ZoneOffset.ofHours(1))
        .withZoneSameLocal(ZoneId.systemDefault()).toInstant());

System.out.println(date);

산출

Sun Jan 12 00:00:00 EST 2020

보시다시피, 내가 미국 동부 시간대에 있더라도 날짜 값은 정확합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UTC GMT + 0200을 현지 시간으로 변환

분류에서Dev

datetime을 현지 시간으로 변환하는 문제

분류에서Dev

Android GMT를 현재 현지 시간으로 변환

분류에서Dev

GMT 시간을 현지 시간으로 변환하는 방법 정확한 시간 표시

분류에서Dev

GMT 시간대를 사용자 지정 시간대로 변환

분류에서Dev

Java-지정된 DateTime을 문자열로 현지 시간대로 변환

분류에서Dev

현지 시간으로 변환하지 않고 문자열을 DateTime 형식으로 변환

분류에서Dev

정수로 sqlite에 저장된 UNIX TIMESTAMP GMT, 현지 시간대로 변환

분류에서Dev

시간 열을 datetime으로 변환하지 못함

분류에서Dev

Eorzea DateTime 값을 지구 시간으로 변환

분류에서Dev

datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

분류에서Dev

datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

분류에서Dev

GMT 형식의 문자열을 datetime 형식으로 변환

분류에서Dev

일광 절약 시간제 변경으로 GMT를 현지 시간으로 변환

분류에서Dev

날짜를 변경하지 않고 GMT 시간으로 변환

분류에서Dev

UTC datetime을 시간대를 사용하여 로컬 datetime으로 변환

분류에서Dev

Android에서 GMT 형식이 지정된 경우 날짜와 시간을 한 시간대에서 다른 시간대로 변환하는 방법

분류에서Dev

Pandas : 시간대 이름을 사용하여 datetime으로 변환

분류에서Dev

Android / Joda 시간-dateTime을 내 로컬 DateTime으로 변환

분류에서Dev

"CEST"시간대는 일광 절약 시간으로 전환하는 동안 GMT로 오프셋을 변경합니다 (그렇지 않아야 함).

분류에서Dev

날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환

분류에서Dev

GMT에서 현재 시간대로 변환 한 후 Android 캘린더 시간이 1 시간 감소합니다.

분류에서Dev

"약간 일치하지 않는"Pandas 열을 DateTime으로 변환

분류에서Dev

날짜 및 시간을 GMT 형식으로 변환

분류에서Dev

GMT 날짜 형식을 시간 형식으로 만 변환

분류에서Dev

datetime obj를 시간대 인식 datetime으로 변환

분류에서Dev

다른 시간대의 시간을 Perl의 현지 시간으로 변환 하시겠습니까?

분류에서Dev

+05 : 30으로 UTC 시간을 현지 시간 시간대로 어떻게 변환 할 수 있습니까?

분류에서Dev

현재 시간대를 찾아 현지 시간을 기준으로 한 약어로 변환합니다.

Related 관련 기사

  1. 1

    UTC GMT + 0200을 현지 시간으로 변환

  2. 2

    datetime을 현지 시간으로 변환하는 문제

  3. 3

    Android GMT를 현재 현지 시간으로 변환

  4. 4

    GMT 시간을 현지 시간으로 변환하는 방법 정확한 시간 표시

  5. 5

    GMT 시간대를 사용자 지정 시간대로 변환

  6. 6

    Java-지정된 DateTime을 문자열로 현지 시간대로 변환

  7. 7

    현지 시간으로 변환하지 않고 문자열을 DateTime 형식으로 변환

  8. 8

    정수로 sqlite에 저장된 UNIX TIMESTAMP GMT, 현지 시간대로 변환

  9. 9

    시간 열을 datetime으로 변환하지 못함

  10. 10

    Eorzea DateTime 값을 지구 시간으로 변환

  11. 11

    datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

  12. 12

    datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

  13. 13

    GMT 형식의 문자열을 datetime 형식으로 변환

  14. 14

    일광 절약 시간제 변경으로 GMT를 현지 시간으로 변환

  15. 15

    날짜를 변경하지 않고 GMT 시간으로 변환

  16. 16

    UTC datetime을 시간대를 사용하여 로컬 datetime으로 변환

  17. 17

    Android에서 GMT 형식이 지정된 경우 날짜와 시간을 한 시간대에서 다른 시간대로 변환하는 방법

  18. 18

    Pandas : 시간대 이름을 사용하여 datetime으로 변환

  19. 19

    Android / Joda 시간-dateTime을 내 로컬 DateTime으로 변환

  20. 20

    "CEST"시간대는 일광 절약 시간으로 전환하는 동안 GMT로 오프셋을 변경합니다 (그렇지 않아야 함).

  21. 21

    날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환

  22. 22

    GMT에서 현재 시간대로 변환 한 후 Android 캘린더 시간이 1 시간 감소합니다.

  23. 23

    "약간 일치하지 않는"Pandas 열을 DateTime으로 변환

  24. 24

    날짜 및 시간을 GMT 형식으로 변환

  25. 25

    GMT 날짜 형식을 시간 형식으로 만 변환

  26. 26

    datetime obj를 시간대 인식 datetime으로 변환

  27. 27

    다른 시간대의 시간을 Perl의 현지 시간으로 변환 하시겠습니까?

  28. 28

    +05 : 30으로 UTC 시간을 현지 시간 시간대로 어떻게 변환 할 수 있습니까?

  29. 29

    현재 시간대를 찾아 현지 시간을 기준으로 한 약어로 변환합니다.

뜨겁다태그

보관