Java日期的格式String类型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类型的GMT、GST日期转换成Date对象



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’。

执行效果图

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-27 08:04:23

Java日期的格式String类型GMT,GST换算成日期Date种类的相关文章

【转】java内存分配和String类型的深度解析

一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBui

java中特殊的String类型

Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值 'a'.'b'.'c',然后在堆中创建一个String对象object,它的值是刚才在栈中创建的三个char型值组成的数组{'a'.'b'. 'c'

erlang处理mongodb日期时间格式data类型

在项目中,mongo中要创建日期类型,根据这个日期类型进而对mongo设置过期时间自动删除.而mongo中的日期类型,使用ISO格式,例如:ISODate("2012-11-02T07:58:51.718Z") 在java中,例如: db.tianyc04.insert({mark:1, mark_time:new Date()}) ,一个new Date() 直接轻松搞定, 看到 { "_id" : ObjectId("5126e00939899c4cf

java内存分配和String类型的深度解析(转)

一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析 关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBu

Java内存分配和String类型的深度解析

一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBui

JAVA中int转String类型有三种方法

String.valueOf(i) Integer.toString(i) i+"" i+""也就是一个int型的常量.+上个空的字符串,这里牵涉到了string的一些基础知识,string类型的+int在java中他会去这样理解是string类型的字符串跟上个int类型的i代表的字符串(先把i转换为string),int+string型就是先将int型的i转为string然后跟上后面的string 原文:https://blog.csdn.net/rocling/

【转】Java中特殊的String类型

Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a'.'b'.'c',然后在堆中创建一个String对象object,它的值是刚才在栈中创建的三个char型值组成的数组{'a'.'b'.'c'},

在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式

String s = null; s  += "hello"; System.out.println(s); 结果为:nullhello 原因: 先应用String.valueOf 得出s的value值,再通过StringBuilder拼接hello,因此将value与hello进行了拼接: String s = null; s = (new StringBuilder(String.valueOf(s))).append("hello").toString();

Java Blob类型和String类型相互转换

1.String 转 Blob: String content = "Hello World!"; Blob blob = Hibernate.createBlob(content.getBytes()); 2.Blob 转 String: Blob blob; try{ String content = new String(blob.getBytes((long)1, (int)blob.length())); } catch(SQLException e) { e.printSt