处理日期,时间;
大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。
Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
SimpleDateFormat
java.text.SimpleDateFormat
SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。
练习:String与Date的相互转化
按某种时间格式来输出指定的String类型时间
date2String
format
把某种时间格式的String时间转成Date类型时间
string2Date
parse
package reviewDemo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo28 {
public static void main(String[] args) throws Exception {
Date d = new Date();
System.out.println(d);//获取当前时间
//格式化
SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");
String s = sd.format(d);//这个方法继承于SimpleDateFormat的父类DateFormat类!
System.out.println(s);
//反格式化
d = sd.parse(s);
System.out.println(d);
}
}
Calendar
推荐使用处理日期和时间的类Calendar;
是抽象类,不能实例化,通过
static Calendar getInstance() 获得一个Calendar对象。
int get(int field):返回指定日历字段值
静态常量:
YEAR 表示年的字段数字。
MONTH 表示月份字段数字,月份范围是[0,11]。
DATE 表示一个月中的某天。
DAY_OF_MONTH 表示一个月中的某天。
DAY_OF_WEEK 表示一个星期中的某天。
HOUR_OF_DAY / HOUR 表示第几小时
MINUTE 表示第几分钟
SECOND 表示第几秒
Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。
void set(int year, int month, int date, int hour, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
若 amount为负数,则减去一天,
若 amount为正数 ,则加上一天
例子
package reviewDemo;
import java.util.Calendar;
import java.util.Date;
public class Demo29 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c);
Date d = c.getTime();
System.out.println(d);
/**
* void set(int year, int month, int date, int hour, int minute, int second)
* 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
*/
c.set(2015, 07, 15, 12, 24, 55);
d = c.getTime();
System.out.println(d);
c.add(Calendar.DAY_OF_MONTH, 3);
d = c.getTime();
System.out.println(d);
}
}
我的总结:注意常查看api!
Eg:“查询距今最近三天内的记录”,这里的‘三天内’是什么时间段?
将当前日期时间转换为 只获取当天的00:00:00
如: 2011-08-08 12:12:12 转化为 2011-08-08 00:00:00、
package reviewDemo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Demo30 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Date d = c.getTime();
System.out.println(d);
SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");
String s = sd.format(d);
System.out.println(s);
c.set(2015, 8, 23, 13, 24, 15);
d = c.getTime();
System.out.println(sd.format(d));
c.add(Calendar.DAY_OF_MONTH, -3);
d = c.getTime();
System.out.println(sd.format(d));
}
}
输出:
Thu Jul 04 08:56:51 CST 2013
2013-7-4 08:56:51 星期四
2015-9-23 13:24:15 星期三
2015-9-20 13:24:15 星期日