原文:[java]转:String Date Calendar之间的转换
作者:祺祺妈妈
基本介绍
包含在Java
的java.text.SimpleDateFormat
包中,用于在Date
与String
之间转换。
日期和时间模式字符串
简单的说就是生成的(或接收的)字符串的格式,其中特定的字符被特定的时间信息(如年、月、日)等替代,对照表如下。

使用严格限制转换
默认创建的实例的日期格式是不严格的,即它会认为2018-13-1
为合法的日期,并且自动转换成2019-1-1
(月份自动+1),实际使用时很多情况下不会使用到该特性,更多还是希望抛出格式错误的异常。
解决方法:该类的实例包括一个方法setLenient()
,传入参数false
即可设置该实例使用严格限制的日期转换,如下。
1 2
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); sdf.setLenient(false)
|
转换示例
Calendar 转 String
1 2 3
| Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(calendar.getTime());
|
String 转 Calendar
1 2 3 4 5
| String str = "2012-5-27"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(str); Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
|
Date 转 String
1 2
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(new Date());
|
String 转 Date
1 2 3
| String str = "2012-5-27"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date= sdf.parse(str);
|
Date 转 Calendar
1 2
| Calendar calendar = Calendar.getInstance(); calendar.setTime(new java.util.Date());
|
Calendar 转 Date
1 2
| Calendar calendar = Calendar.getInstance(); java.util.Date date = calendar.getTime();
|
String 转 Timestamp
1
| Timestamp ts = Timestamp.valueOf("2012-1-14 08:11:00");
|
Date 转 Timestamp
1 2 3
| SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = df.format(new Date()); Timestamp ts = Timestamp.valueOf(time);
|