> Java > java지도 시간 > 시간대 간에 Java 날짜/시간 개체를 정확하게 변환하려면 어떻게 해야 합니까?

시간대 간에 Java 날짜/시간 개체를 정확하게 변환하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-28 11:14:15
원래의
634명이 탐색했습니다.

How Can I Accurately Convert Java Date/Time Objects Between Time Zones?

Java에서 날짜/시간을 특정 시간대로 변환

문제:

날짜/시간을 Java에서 변환 Java에서는 한 시간대에서 다른 시간대로 이동하는 것이 어려울 수 있습니다. 현재 시간을 GMT에서 GMT 13으로 변환하기 위해 사용자가 제공하는 코드는 간단해 보이지만 특정 시간을 설정할 때 동일한 접근 방식이 실패합니다. 사용자는 이러한 경우 왜 로컬 시스템의 시간대가 사용되는지 질문합니다.

해결책:

명시적인 시간대인 경우 시간은 UTC로 간주됩니다. 그러나 밀리초를 사용하여 Calendar 객체에 시간을 설정할 때(calendar.setTime(new Date(1317816735000L))에서와 같이) 시간은 호스트 시스템의 시간대에 있다고 가정합니다.

이 문제를 극복하려면 시간 형식을 지정하기 전에 SimpleDateFormat 개체의 시간대를 명시적으로 설정할 수 있습니다.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(1317816735000L));
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");

// Set the time zone for the formatter
sdf.setTimeZone(TimeZone.getTimeZone("GMT+13"));

// Format the time with the specified time zone
String newZealandTime = sdf.format(calendar.getTime());
로그인 후 복사

이 코드는 지정된 시간대(GMT 13)의 날짜를 문자열로 반환합니다.

사용자 정의 날짜/시간 변환 단계:

  1. 캘린더 개체를 생성하고 시간과 날짜를 설정하세요.
  2. 다음을 사용하여 초기 시간대를 지정하세요. sdf.setTimeZone(TimeZone.getTimeZone("GMT")).
  3. sdf.format(calendar.getTime())을 사용하여 시간 형식을 지정합니다.
  4. 원하는 시간대를 SimpleDateFormat 객체로 설정합니다. sdf.setTimeZone(TimeZone.getTimeZone("GMT) 사용 13")).
  5. 변환된 값을 얻으려면 새 시간대를 사용하여 시간 형식을 다시 지정하세요.

위 내용은 시간대 간에 Java 날짜/시간 개체를 정확하게 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿