JDK8新的日期时间类转换方法:
package com.example; import org.junit.Test; import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class TestRFC1123 { String rfc1123Times[] = new String[] { "Sat, 08 Jan 2000 18:31:41 GMT", "Wed, 27 Sep 2006 21:36:45 +0200" }; /*** * jdk 8 new date/time */ @Test public void testParse() { String rfc1123Time; for (int i = 0; i < rfc1123Times.length; i++) { rfc1123Time = rfc1123Times[i]; DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME; Instant instant = Instant.from(formatter.parse(rfc1123Time)); System.out.println("国际时间:"+instant);//说法可能有错 ZonedDateTime zdt = ZonedDateTime.parse( rfc1123Time , DateTimeFormatter.RFC_1123_DATE_TIME ); ZoneId zone = ZoneId.of( "Asia/Shanghai" ); // Or "Asia/Kolkata", etc. ZonedDateTime zdtMontreal = zdt.withZoneSameInstant( zone ); System.out.println("带时区的时间:"+zdt+",北京时间:"+zdtMontreal); } } }
参考来源:How to Convert RFC-1123 date-time formatter, to local time