日期总结
1. Date类
1.1 Date date = new Date();
以当前的系统时间创建Date对象 (构造方法)
1.2 Date date = new Date( long millis );
以millis毫秒值所在的日期创建Date对象 (构造方法)
1.3 long millis = date.getTime();
获取Date对象的毫秒值
1.4 date.setTime( long millis );
设置毫秒值
2. SimpleDateFormat类
该类为抽象类DateFormat的子类
2.1 构造方法 :SimpleDateFormat df = new SimpleDateFormat ( String pattern );
用给定的模式和默认语言环境构造一个SimpleDateFormat对象, pattern是一个字符串, 代表日期时间的自定义格式
如 : "yyyy年MM月dd日 HH时mm分ss秒"
2.2 Date对象与String对象互相转化
2.2.1 Date对象--->String字符串
public String format (Date date )
public class SimpleDateFormatDemo {
public static void main (String [] args){
//从Date到String
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//调用.format(Date date)方法, 得到所需字符串
String s = sdf.format(d);
System.out.println(s)
//思路总结: 把已知的Date对象转换为字符串, 就需要创建一个SimpleDateFormat对象, 并
//指定日期显示格式, 随后, 只需调用SimpleDateFormat的format方法即可得到该字符串
}
}
2.2.2 String字符串--->Date对象
public Date parse ( String source )
public class SimpleDateFormat {
public static void main ( String [] args ) throws ParseException {
//从String 到Date
String s = "2018-08-09 11:11:11";
//ParseException
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
//调用SimpleDateFormat的parse(String source)方法,得到Date对象
System.out.println(sdf.format(sdf.pars(s));
//思路总结: 把已知字符串类型时间转换为Date类型,
//需要创建一个格式一样的SimpleDateFormat类型对象
//然后调用.parse(String source)方法即可得到Date类型的对象
//类型转换可能失败,所以要用异常处理捕获异常.因此,也可以用try catch
try{
Date d = sdf.parse(s);
}catch(ParseException e){
System.out.println("转换失败");
}
}
}
3. Calendar类
Calendar是抽象类, 不能直接 创建对象
3.1 静态方法(获得日历对象)
public static Calendar getInstance ()
: 使用默认时区和语言环境获得一个日历
例如 :
Calendar cal = Calendar.getInstance();
3.2 get / set 方法
void set( int field , int value )
: 给指定日历字段设置为valueint get( int field )
: 返回给定日历字段的值
package drafts;
import java.util.Calendar;
import java.util.Date;
public class Calendar2 {
public static void main(String[] args) {
//创建Calendar对象(当前时间)
Calendar c = Calendar.getInstance();
//给c各个日历字段设置值
c.set(Calendar.YEAR, 1996);
c.set(Calendar.MONTH, 11);
int hour = c.get(Calendar.HOUR);
int year = c.get(Calendar.YEAR);
//使用add方法修改给定日历字段的值,(+ 增 - 减)
c.add(Calendar,YEAR, 2); --->就是把日历的年份加两年,-2 就是减两年
//getTime方法,把Calendar类型的对象转换成Date类型
Date d = c.getTime();
System.out.println(d);
}
}
3.3 add方法
public abstract void add ( int field, int amount )
:
根据日历规则为给定日历字段添减指定的时间量
什么叫根据日历规则: 如此时是2月最后一天, 加一天, 就会变成三月第一天
3.3 getTime方法
Date getTime( )
:
返回一个表示此Calendar时间值的Date对象
4. 注意事项
- 西方星期的开始为周日, 中国为周一
- 在Calendar类中, 月份表示的是以0-11月表示1-12月
- 日期有大小关系, 时间越靠后, 时间越大
4. System类
4.1 currentTimeMillis()
public static long currentTimeMillis()
: 返回当前时间( 以毫秒为单位 )