字符串与Date的互相转化:
字符串转为Date对象:
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String string = "20160404"; Date date = format.parse(string);
Date对象转化成字符串:
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String string = "20160404"; Date date = format.parse(string); System.out.println(date.toString());
Timestamp与字符串的互相转化:
字符串转为Timestamp对象:
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String string = "20160404"; Date date = format.parse(string); Timestamp timestamp = new Timestamp(date.getTime());
Timestamp对象转为字符串对象:
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String string = "20160404"; Date date = format.parse(string); Timestamp timestamp = new Timestamp(date.getTime()); String timestampStr = timestamp.toString();
SimpleDateFormat 使用注意点:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String dateStr = "2016-09-05"; Date date = dateFormat.parse(dateStr);
System.out.println(dateFormat.format(date));
以上这段代码并不会抛出异常,且输出的格式并非我们所期待的,20151209;
原因是:parse() 方法是选取字符串的开头的若干个字符进行解析的,还是上面的例子,向 dateStr 赋值 “2016-09-”,输出的结果是一样的,如果要解析严格按照格式“yyyyMMdd”,则要在解析前,加上代码--dateFormat.setLenient(false);
这样才能让 dateFormat 解析时严格按照这个格式,加上后,上面的代码运行时会抛出 ParseException;