GMT 和 时间日期格式
GMT:格林尼标准时间
北京时间=GMT时间+8小时
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 ‘A‘ 到‘Z‘ 和‘a‘ 到‘z‘ 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (‘) 引起来,以免进行解释。"‘‘" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符‘A‘ 到‘Z‘ 和‘a‘ 到‘z‘ 都被保留)
字母  |  
   日期或时间元素  |  
   表示  |  
   示例  |  
  
G  |  
   Era标志符  |  
   Text  |  
   AD  |  
  
y  |  
   年  |  
   Year  |  
   1996; 96  |  
  
M  |  
   年中的月份  |  
   Month  |  
   July; Jul; 07  |  
  
w  |  
   年中的周数  |  
   Number  |  
   27  |  
  
W  |  
   月份中的周数  |  
   Number  |  
   2  |  
  
D  |  
   年中的天数  |  
   Number  |  
   189  |  
  
d  |  
   月份中的天数  |  
   Number  |  
   10  |  
  
F  |  
   月份中的星期  |  
   Number  |  
   2  |  
  
E  |  
   星期中的天数  |  
   Text  |  
   Tuesday; Tue  |  
  
a  |  
   Am/pm标记  |  
   Text  |  
   PM  |  
  
H  |  
   一天中的小时数(0-23)  |  
   Number  |  
   0  |  
  
k  |  
   一天中的小时数(1-24)  |  
   Number  |  
   24  |  
  
K  |  
   am/pm中的小时数(0-11)  |  
   Number  |  
   0  |  
  
h  |  
   am/pm中的小时数(1-12)  |  
   Number  |  
   12  |  
  
m  |  
   小时中的分钟数  |  
   Number  |  
   30  |  
  
s  |  
   分钟中的秒数  |  
   Number  |  
   55  |  
  
S  |  
   毫秒数  |  
   Number  |  
   978  |  
  
z  |  
   时区  |  
   General time zone  |  
   Pacific Standard Time; PST; GMT-08:00  |  
  
Z  |  
   时区  |  
   RFC 822 time zone  |  
   -0800  |  
  
以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。
日期和时间模式  |  
   结果  |  
  
"yyyy.MM.dd G ‘at‘ HH:mm:ss z"  |  
   2001.07.04 AD at 12:08:56 PDT  |  
  
"EEE, MMM d, ‘‘yy"  |  
   Wed, Jul 4, ‘01  |  
  
"h:mm a"  |  
   12:08 PM  |  
  
"hh ‘o‘‘clock‘ a, zzzz"  |  
   12 o‘clock PM, Pacific Daylight Time  |  
  
"K:mm a, z"  |  
   0:08 PM, PDT  |  
  
"yyyyy.MMMMM.dd GGG hh:mm aaa"  |  
   02001.July.04 AD 12:08 PM  |  
  
"EEE, d MMM yyyy HH:mm:ss Z"  |  
   Wed, 4 Jul 2001 12:08:56 -0700  |  
  
"yyMMddHHmmssZ"  |  
   010704120856-0700  |  
  
"yyyy-MM-dd‘T‘HH:mm:ss.SSSZ"  |  
   2001-07-04T12:08:56.235-0700  |  
  
String stringDate = "Thu Oct 16 07:13:48 GMT 2014";
SimpleDateFormat sdf = newSimpleDateFormat("EEE MMM ddHH:mm:ss ‘GMT‘ yyyy",Locale.US);
Date date =sdf.parse(stringDate);
//     System.out.println(date.toString());
sdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");    
System.out.println(sdf.format(date)); 
代码分析:
在实例化SimpleDateFormat类的时候需要指定两个参数,第一个参数是要解析的日期模式,第二个参数是指定语言环境的。在有些时候第二参数是可以省略的,但在解析String类型的GMT或GST日期的时候需要将第二个参数指定为Locale.US或Locale.UK或Locale.ENGLISH否则会出现编译错误。
关于第一个参数日期模式是要根据要解析的String类型日期格式不同而不同,其中EEE代表星期,MMM代表月份,dd代表天,HH代表小时,mm代表分钟,ss代表秒,这里要特别注意的是’GMT’,它代表你要解析的String是GMT格式的时间,如果GST格式可以使用’ GST’来代替’GMT’。
原文:http://my.oschina.net/xinxingegeya/blog/394821