1.最近,因为项目需求,需要对文本里面的日期进行处理。
日期在文本中存储格式为:
2010-12-22T10:49:18+08:00
这个日期代表的意思是东八区,2010年12月22日时间10点49分18秒。
减号代表西区。
joda time简介:
joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。其他目标包括可扩展性、完整的特性集以及对多种日历系统的支持。并且 Joda 与 JDK 是百分之百可互操作的,因此您无需替换所有 Java 代码,只需要替换执行日期/时间计算的那部分代码。
下载joda time的jar包,然后在客户端调用,对字符串的日期进行处理:
package string2date;
import org.joda.time.*;
public class date_nosql {
public static void main(String[] args) {
// TODO Auto-generated method stub
String date="2010-12-22T10:49:18+08:00";
DateTime dt=new DateTime();
dt=DateTime.parse(date);
System.out.println(dt.getMillis());
}
}
上面的代码是将string转为DateTime然后转换成秒,为long型。
使用joda time来处理时间比java自带的类方面多了。
2.对于“13-01-31 20:34:47”形式的日期时间,如何转化呢?
解决方案如下:
lineTxt = bufferedReader.readLine();
String []fields=lineTxt.split(",");
SimpleDateFormat format = new SimpleDateFormat("yy-MM-dd H:m:s");
Date date = format.parse(fields[1]);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.getTimeInMillis());