关于在java中将string转换成日期的问题
来源:互联网 发布:sql语句面试题 编辑:程序博客网 时间:2024/05/17 22:41
java中关于讲text转换成其他类型的方法都在:
java.text.Format
Direct Known Subclasses:
DateFormat; MessageFormat; NumberForMat
//所以可以将text转换成Date,message 和 数字。
对于日期转换来说,最常用的是:
java.text.SimpleDateFormat
final DateFormat TIMESTAMP_FORMAT;
TIMESTAMP_FORMAT= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义了一个format,意思是用这种格式来解释需要转换的字符串。
TIMESTAMP_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));
//将需要转换的字符串当做GMT对待。
Date date = TIMESTAMP_FORMAT.parse("2011-03-10 04:18:00");
//将字符串转换为date。且字符串必须符合"yyyy-MM-dd HH:mm:ss"的格式,否则会出错。
需要注意的是,格式里的字母大小写非常重要。
比如hh 表示小时是12小时制的。而HH表示是24小时制的。具体可以参考SimpleDateFormat class javadoc.
另外,还需要注意的是timezone的问题。
上文中使用了GMT,因此在parse的时候,会认为字符串代表的是GMT时间。如果不使用timezone,则会用本地的zone。
也可以使用TimeZone.getDefault()来取得本地zone。一样的效果。
另外,现在date已经不那么常用了,取而代之的是Calendar。我们可以这样实例化一个calender:
Date fileDate;
Calendar fileCal = Calendar.getInstance();
fileCal.setTime(fileDate);
我犯过的一个错误是,一个程序读一个文件的内容,需要用当前的时间和文件中记的时间做比较后做统计。结果该文件中的时间是本地服务器的时间,而我用的时间是GMT时间,导致统计出来的数据全都是0.
这都是需要注意的地方。
还经常犯糊涂的是。debug到date的时候,总是看到显示的时间不是2011-03-10 04:18:00,就奇怪。其实,所有的date类型,包括在databsase中也是,都是存储的一个整型数字,而且是从某个时间开始的秒数。
2011-03-10 04:18:00被parse以后,实际存的是GMT时间。但是debug显示的时候,会根据computer上的timezone转化一下。所以看到的就不是设置的那个时间了。
附加一个将字符串转换成int:
public void setHousekeepingDay(String housekeepingDay){
this.housekeepingDay = Integer.parseInt(housekeepingDay);
}
- 关于在java中将string转换成日期的问题
- java中将字符串转换成日期类型
- JavaScript中将字符串类型的变量转换成日期类型
- String转换成日期格式String
- java字符串转换成日期
- mysql中将年和周次转换成日期的函数
- freemarker模版中将字符串转换成日期类型
- java 把相加的天数转换成日期
- 将秒转换成日期格式的java方法:
- java的日期字符串转换成日期格式
- Java中字符串转换成日期
- JAVA把毫秒数转换成日期
- Java毫秒转换成日期格式
- JAVA把毫秒数转换成日期
- JAVA把毫秒数转换成日期
- JAVA把毫秒数转换成日期
- JavaScript将字符串转换成日期的方法(JavaScript String to Date)
- 在MYSQL中把一个字符串转换成日期
- ShutdownHook
- iPhone基础学习-UIViewController
- Quartz Quick Start Guide
- GCC后端及汇编发布(8)
- vim中taglist使用(比较详细的)
- 关于在java中将string转换成日期的问题
- Java IO 概述
- 队列
- java中methond的一种临时写法
- 一个菜单的的加载
- The report server cannot decrypt the symmetric key that is used to access sensitive or encrypted data in a report server databas
- Debian(Ubuntu) dpkg和apt
- GCC's bacl-end & assemble emission (8)
- vrml