首先通过一个例子来简单回顾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:秒