JAVA时间类

java.util.Date

Date date = new Date();
Date date = new Date(System.currentTimeMillis());


Date dateA = new Date(1000L);
System.out.println(dateA);
// 打印出北京时间 Thu Jan 01 08:00:01 CST 1970
System.out.println(dateA.toGMTString());
// 打印出格林尼治时间 1 Jan 1970 00:00:01 GMT


dateA.getTimezoneOffset();
// 返回与格林尼治时间的时差, 以分钟计时, 正好是8个小时


long m = dateA.getTime();
// 打印出date到1970年1月1日的毫秒数
dateA.setTime(long time)	
//设置该对象的时间


// 比较时间,返回boolean类型
date.after(dateA);
date.before(dateA);
// 比较时间,返回-1 1 0
date.compareTo(dateA);

Calendar日历类

  • 表示日历的抽象类。不能直接实例化,程序只能创建calender子类的实例
//创建一个默认的Calendar对象
Calendar cl = Calendar.getInstance();

//从Calender对象中取出Date对象
Date date = cl.getTime();

//通过Date对象获取Calendar对象
Calendar cl2 = Calendar.getInstance();
cl2.setTime(date);
  • Calender类提供了大量访问、修改日期的方法
Calendar calendar = new GregorianCalendar();
// 设置日历时间
calendar.set(Calendar.YEAR, 2019);
calendar.set(Calendar.MONTH, 12);
calendar.set(Calendar.DAY_OF_MONTH, 10);

//使用Date类设置calendar时间
calendar.setTime(new Date());

//取得日历时间 calendar.getTime();  返回一个Date对象
System.out.println(calendar.getTime().toString());

//使用日历取得时间偏移
calendar.add(Calendar.YEAR, 10);
System.out.println(calendar.getTime().toString());
......


int get(int field):返回指定日历字段的值;
cl.get(Calendar.YEAR)
cl.get(Calendar.MONTH));//12
cl.get(Calendar.WEEK_OF_YEAR)
cl.get(Calendar.DAY_OF_MONTH)
cl.get(Calendar.DAY_OF_WEEK)
cl.get(Calendar.DAY_OF_WEEK_IN_MONTH)
......


void add(int field,int amount):为给定字段添加或减去指定的时间值;
cl.add(Calendar.YEAR,3)
......


int getActualMaximum(int field):返回指定日历字段可能拥有的最大值。
cl.getActualMaximum(Calendar.YEAR)
cl.getActualMaximum(Calendar.MONTH)
cl.getActualMaximum(Calendar.HOUR)
......


void roll(int field,int amount):与add方法类似,区别在于加上amount后超过了该字段所能表示范围时不会向上一个字段进位。
void set(int field,int value):将给定日历字段设置为给定值;
void set(int year,int month,int date):设置Calendar对象的年、月、日三个字段的值;
void set(int year,int month,int date,int hourOfDay,int minute,int second):设置Calendar对象的年、月、日、时、分、秒六个字段的值;
......


Calendar提供了一个setLenient()用于设置它的容错性,比如设置月份为13。
cal.set(Calendar.MONTH,13)
......


set方法延迟修改
该Calendar所代表的时间且不会立即更改,直到下次调用get()、getTime、getTimeInMillis、add或roll时才会重新计算日历时间
......

SimpleDateFormat

Date date = new Date();
// 自定义格式输出时间
// yyyy 年   MM 月   dd日   h 12小时制   H  24小时制0-23   ss秒     SSS毫秒
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
System.out.println(dateFormat.format(date));


// 将指定格式的字符串转化成Date
String dateStr = "2019-12-10 09:00:00.127"
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
//可能会抛出异常
try {
   date = dateFormat1.parse(dateStr);
   System.out.println("date = " + date);
} catch (ParseException e) {
   e.printStackTrace();
}

java.util.Date子类java.sql.Date、java.sql.Timestamp、java.sql.Time略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值