1 时间处理相关类
1.1 Date
Date date = new Date();
等同于
Date data = new Date(System.currentTimeMilis);
构造方法
1.2 Calendar
- 时间计算的抽象类
- GregorianCalendar继承了此类
- 抽象类,SimpleDateFormat是其子类
- 完成字符串(String)和时间对象(Date)的转化
- format:Date转换字符串
- parse:String转换成Date
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String string = df.format(date);// Date时间转换成字符串
System.out.println(string);
String s = "2017-12-31";
Date date2 = df.parse(s);// String时间转换成Date
System.out.println(date2);
1.4 代码事例
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
/**
* @param args
*/
public static void main(String[] args) throws ParseException {
/**
* Date有两种构造方法
*/
// 1.无参构造
// 获取的是当前的时间
Date date = new Date();
System.out.println("date:" + date);//date:Mon Mar 26 21:44:31 CST 2018
// 2.传递参数,为毫秒数,历元(1970 01-01 00:00:00)
Date date1 = new Date(11);
System.out.println("date1:" + date1);//Thu Jan 01 08:00:00 CST 1970
Date date2 = new Date(12);
Date date3 = new Date(12);
System.out.println(date2);
/**
* Date的一些常用方法
*/
// 1 比较日期顺序
System.out.println(date1.after(date2));// false
System.out.println(date1.before(date2));// true
System.out.println(date1.compareTo(date2));// -1
// 2 比较日期是否相等
System.out.println(date2.equals(date3));//true
// 3 获取该日期距离1970 01-01 00:00:00的毫秒数,返回值是long
System.out.println(date3.getTime()); // 12
// 4 设置距离1970的毫秒数
date3.setTime(100);
System.out.println(date3.getTime());// 100
/**
* SimpleDateFormat
*/
//SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
// 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
Date date4 = new Date();
// 1 格式化 Date->String
System.out.println(simpleDateFormat.format(date4));//18-3-26 下午10:30
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(simpleDateFormat1.format(date4));// 2018-03-26
// 2 格式化 String -> Date
String time = "2018-03-03";
System.out.println(simpleDateFormat1.parse(time));// 2018-03-03
/**
* Calendar:
*/
Calendar calendar = Calendar.getInstance();
// 1 获取当前的时间 等同new Date()
System.out.println("获取当前的时间:" + calendar.getTime());//Mon Mar 26 22:45:00 CST 2018
// 2 获取当前的年
System.out.println("今年是:" + calendar.get(Calendar.YEAR));//2018
// 3 获取当前月份
System.out.println("这个月是:" + calendar.get(Calendar.MONTH));// 2 注意点 月份会少一个月
// 4 获取这个月的号数
System.out.println("今天是几号:" + calendar.get(Calendar.DATE));// 26
// 5 获取现在的小时
System.out.println("现在是几点:" + calendar.get(Calendar.HOUR)); // 10
// 6 获取现在的分钟
System.out.println("现在是多少分钟:"+calendar.get(Calendar.MINUTE));
// 7 获取现在是多少秒
System.out.println("获取现在是多少秒:"+calendar.get(Calendar.SECOND));// 7
// 8 今天是今年的多少周
System.out.println("今天是今年的多少周:"+calendar.get(Calendar.WEEK_OF_YEAR)); // 13
// 9 今天是这个月的多少周
System.out.println("今天是这个月的多少周:"+calendar.get(Calendar.WEEK_OF_MONTH)); // 5
// 10 今天是这个星期的第几天
System.out.println("今天是这个星期的第几天:"+calendar.get(Calendar.DAY_OF_WEEK));// 3 注意点 星期是从周日开始的
// 11 今天是这个月的第多少天
System.out.println("今天是这个月的第多少天:"+calendar.get(Calendar.DAY_OF_MONTH));// 27
}
}
2 获取前N天或者后N天的时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH,-30);
System.out.println(calendar.getTime()); // Sun Mar 25 22:55:21 CST 2018
System.out.println(simpleDateFormat1.format(calendar.getTime()));