标签:string类型的格林时间转date android string类型的日期转 androidstring类型的gmt gst日期转换成date类型
请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型
http://blog.csdn.net/fengyuzhengfan/article/details/40164721
在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的。这样不得不面对将String 类型的日期转换成Date类型的问题。下面就介绍一下如何将String类型的GMT、GST日期转换成Date对象。
在JDK1.1之前可以使用newDate(“”)来将String类型的日期转换成Date类型的对象。但自JDK1.1开始已将不建议这样做了。下面就介绍一下用SimpleDateFormat类来将String类型的日期转换成Date对象。
SimpleDateFormat
类的概述:
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’。
运行效果图
Java日期格式化之将String类型的GMT,GST日期转换成Date类型
标签:string类型的格林时间转date android string类型的日期转 androidstring类型的gmt gst日期转换成date类型
原文地址:http://blog.csdn.net/fengyuzhengfan/article/details/40164721