首先通过一个例子来简单回顾Java中与日期和时间相关的类:
package day7; import java.text.SimpleDateFormat; import java.util.Date; /** * Date类:处理日期,时间,该类中的大部分方法已经过时,不推荐使用 * 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换 * 使用 DateFormat 类来格式化和解析日期字符串 * 常用构造方法:Date()分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒) * * 未过时的方法: * boolean after(Date when) 测试此日期是否在指定日期之后 * boolean before(Date when)测试此日期是否在指定日期之前 */ public class DateDemo { public static void main(String[] args) { //从1970年1月1日,00:00开始到现在的毫秒数 System.out.println(System.currentTimeMillis());//1368598309172 Date date = new Date(); System.out.println(date);//Wed May 15 14:13:08 CST 2013 /* * 但是这种日期格式并不符合我们的使用习惯,如何显示为 2013-05-15 14:13:08 周一 * 我们可以使用java.text.SimpleDateFormat用来格式化日期 * SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类 * 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化 */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d HH:mm:ss E"); //将日期格式使用指定的模式格式化为字符串 //date --> string String dd = sdf.format(date); System.out.println(dd);//2013-5-15 14:19:53 星期三 /* * 解析日期字符串:String时间 --> Date * Date parse(String text) 解析字符串的文本,生成 Date。 */ } }
练习题:写两个方法
1)按某种时间格式来输出指定的String类型的时间(使用format)
2)把某种时间格式的String时间转成Date类型时间(使用parse)
package day7; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTestDemo { public static void main(String[] args) { Date date = new Date(); String str = dateToString(date); System.out.println(str);//2013-05-15 14:34:50 星期三 String str1 = "2013-05-20"; Date date2 = stringToDate(str1); System.out.println(date2); } /** * 按"2010-01-01 12:00:20 星期一"的时间格式来输出指定的String类型时间 * @param date 传入Date对象 * @return 返回转换后的字符串 */ public static String dateToString(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String str = sdf.format(date); return str; } public static Date stringToDate(String str){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse(str); return date; } catch (ParseException e) { e.printStackTrace(); } return null; } }
常用的日期模式字母:
y:年
M:月
d:月中的天数
D:年中的天数
E:星期中的天数
H:时
m:分
s:秒