java转换日期格式为 RFC1123
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; public class GmtDate { public static void main(String[] args){ System.out.println(new Date()); //本地日期格式. String rfc1123_1 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",Locale.US).format(new Date()); System.out.println("rfc1123_1 = " + rfc1123_1); //错误 String rfc1123_2 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'",Locale.US).format(new Date()); System.out.println("rfc1123_2 = " + rfc1123_2); //正确, 推荐使用. SimpleDateFormat sdf3 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",Locale.US); sdf3.setTimeZone(TimeZone.getTimeZone("GMT")); String rfc1123_3 = sdf3.format(new Date()); System.out.println("rfc1123_3 = "+rfc1123_3); //正确. SimpleDateFormat sdf4 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'",Locale.US); sdf4.setTimeZone(TimeZone.getTimeZone("GMT")); String rfc1123_4 = sdf4.format(new Date()); System.out.println("rfc1123_4 = " + rfc1123_4); } }
输出的结果
Tue Oct 30 15:33:48 CST 2018
rfc1123_1 = Tue, 30 Oct 2018 15:33:48 CST
rfc1123_2 = Tue, 30 Oct 2018 15:33:48 GMT
rfc1123_3 = Tue, 30 Oct 2018 07:33:48 GMT
rfc1123_4 = Tue, 30 Oct 2018 07:33:48 GMT
****************************************************
对应的命令
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`