"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > SimpledateFormat ( "yyyy-mm-dd't'hh : mm : ss'z '")가 UTC 대신 IST를 표시하는 이유는 무엇입니까?

SimpledateFormat ( "yyyy-mm-dd't'hh : mm : ss'z '")가 UTC 대신 IST를 표시하는 이유는 무엇입니까?

2025-01-29에 게시
검색:301

Why Does SimpleDateFormat(

simpledateformat ( "yyyy-mm-dd'hh : mm : ss'z '") 문제 : IST 타임 존

Java에서 SimpledateFormat 클래스를 사용하면 사전 정의 된 패턴에 따라 날짜를 형식화하고 구문 분석 할 수 있습니다. "yyyy-mm-dd't'hh : mm : ss'z '"패턴을 사용하면 UTC 시간대의 날짜와 시간을 나타낼 것으로 예상됩니다. 그러나 그러한 문자열을 구문 분석 할 때 문제가 발생합니다.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = sdf.parse("2013-09-29T18:46:19Z");
System.out.println(date);

예상 출력은 UTC 시간대의 날짜와 시간입니다. 그러나 많은 사용자들이 대신 IST (Indian Standard Time) Timezon에 날짜와 시간을 표시한다고보고했습니다. 이것은 혼란과 잘못된 날짜 처리로 이어집니다.

솔루션 : SimpledateFormat 생성자는 날짜 패턴 만 초기화하지만 설정하지 않기 때문에 TimeZone

를 명시 적으로 설정합니다. 명시 적으로 시간대. 이를 수정하려면 시간대를 UTC로 수동으로 설정해야합니다.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = sdf.parse("2013-09-29T18:46:19Z");
System.out.println(date);
simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd'hh : mm : ss'z '"); sdf.settimezone (timezone.gettimezone ( "gmt")); 날짜 날짜 = sdf.parse ( "2013-09-29T18 : 46 : 19Z"); System.out.println (Date);

시간대를 GMT로 설정하여 SimpleDateFormat Parser는 입력 문자열을 올바르게 해석하고 예상 UTC 타임 존에 날짜와 시간을 표시합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3