내 Android 앱에서 RFC 1123 형식의 날짜 - 시간 Thu, 25 Aug 2016 08:59:00 GMT
이 표시됩니다. 현지 시간으로 변환해야합니다.RFC-1123 날짜 - 시간 포맷터를 현지 시간으로 변환하는 방법
0
A
답변
3
DateTimeFormatter.RFC_1123_DATE_TIME
java.time 클래스 직접/구문 분석 DateTimeFormatter.RFC_1123_DATE_TIME
상수 통해 RFC 1123 문자열을 생성 할 수있다.
ZonedDateTime zdt =
ZonedDateTime.parse(
"Thu, 25 Aug 2016 08:59:00 GMT" ,
DateTimeFormatter.RFC_1123_DATE_TIME
)
;
거기에서 원하는 시간대를 조정하십시오.
ZoneId z = ZoneId.of("America/Montreal"); // Or "Asia/Kolkata", etc.
ZonedDateTime zdtMontreal = zdt.withZoneSameInstant(z);
참고로, 그 RFC 1123 형식은 끔찍한이며, 요즘 시대에 뒤 떨어진 것입니다. 형식의 문제는 다음과 같습니다. 영어를 사용하기 쉽고, 구문 분석하기 어렵고, 표준화되지 않은 실시간 영역이 아니며 고유하지 않은 3-4 자의 영역 약어를 사용합니다 (!). 대신 :
- proper IANA-defined time zones을 사용하여 시간대를 지정하십시오.
- 표준 ISO 8601 형식을 사용하여 텍스트에 serialize합니다.
java.time 클래스는 날짜/시간 값의 텍스트 표현을 구문 분석/생성 할 때 기본적으로이 형식을 사용합니다.
시간대 조정 및 날짜 - 시간 값 문자열 생성에 대한 자세한 내용은 스택 오버플로 검색을 참조하십시오.
java.time 프레임 워크 나중에 자바 8에 내장되어 java.time 소개
. 이러한 클래스는 java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
과 같이 번거로운 이전 날짜 시간 클래스를 대체합니다.
Joda-Time 프로젝트는 현재 maintenance mode에 있으며, java.time으로 마이그레이션하는 것이 좋습니다.
자세히 알아 보려면 Oracle Tutorial을 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오. java.time 기능의 대부분
ThreeTen-Backport는 자바 6 & 7 백 포팅 또한 (How to use… 참조)에 ThreeTenABPAndroid하도록 구성된다.ThreeTen-Extra 프로젝트는 추가 클래스로 java.time을 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다. 여기에 Interval
, YearWeek
, YearQuarter
등과 같은 유용한 클래스가 있습니다.
가능한 [Java 변환 UTC 타임 스탬프에서 로컬 DateTime] (http://stackoverflow.com/questions/18691376/java-convert-utc-timestamp-to-local-datetime) – Mike
@Mike 정확한 복제본이 아닙니다. 이 질문의 제목은 특정 표준화 된 형식 인 RFC 1123을 언급합니다 (요즘은 오래된 표준이지만). –
@Basil Bourque 고맙습니다. – Hamza