1.java.lang.System类
System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
System.currentTimeMillis();
2. java.util.Date类
表示特定的瞬间,精确到毫秒
构造方法:
- Date( ) 使用Date类的无参数构造方法创建的对象可以获取本地当前时间。
- Date(long date) 指定时间的date对象
常用方法
- getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
- toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准
-
Date d1 = new Date(); System.out.println(d1.getTime()); System.out.println(d1);
1522287472200 Thu Mar 29 09:37:52 CST 2018
3.SimpleDateFormat
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个用来格式化和解析日期的具体类
格式化:
- SimpleDateFormat() :默认的模式和语言环境创建对象
- public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:
- public String format(Date date):方法格式化时间对象date
解析:
- public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期
-
SimpleDateFormat df = new SimpleDateFormat(); System.out.println(df.format(d1)); SimpleDateFormat df1 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss aaa"); System.out.println(df1.format(d1));
System.out.println(df1.parse("星期四, 29 三月 2018 09:37:52 上午"));18-3-29 上午9:37 星期四, 29 三月 2018 09:37:52 上午
Thu Mar 29 09:37:52 CST 2018
Date and Time Pattern | Result |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" |
2001-07-04T12:08:56.235-07:00 |
"YYYY-'W'ww-u" |
2001-W27-3 |
4. java.util.Calendar(日历)类
Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能
获取Calendar实例的方法
- 使用Calendar.getInstance()方法
一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND
- public void set(int field,int value)
- public void add(int field,int amount)
- public final Date getTime()
- public final void setTime(Date date)
Calendar calendar = Calendar.getInstance(); // 从一个 Calendar 对象中获取 Date 对象 Date date = calendar.getTime(); // 使用给定的 Date 设置此 Calendar 的时间 calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, 8); System.out.println("当前时间日设置为8后,时间是:" + calendar.getTime()); calendar.add(Calendar.HOUR, 2); System.out.println("当前时间加2小时后,时间是:" + calendar.getTime()); calendar.add(Calendar.MONTH, -2); System.out.println("当前日期减2个月后,时间是:" + calendar.getTime());
当前时间日设置为8后,时间是:Thu Mar 08 09:56:14 CST 2018 当前时间加2小时后,时间是:Thu Mar 08 11:56:14 CST 2018 当前日期减2个月后,时间是:Mon Jan 08 11:56:14 CST 2018