1、long getTime() 返回自 1970.1.1 00:00 GMT 后,此对象表示的毫秒数void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00 GMT 以后 time 毫秒的时间点。String toString() 将 Date 对象转化成以下形式的 String:dow mon dd hh:mm:ss zzz yyyy其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。m
2、on 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。dd 是一月中的某一天(01 至 31),显示为两位十进制数。hh 是一天中的小时(00 至 23),显示为两位十进制数。mm 是小时中的分钟(00 至 59),显示为两位十进制数。ss 是分钟中的秒数(00 至 61),显示为两位十进制数。 60,61 是因为有润秒zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。yyyy 是年份,显示为 4 位十进制数。使用 S
3、ystem.currentTimeMillis() 获得当前系统时间的毫秒数java.util.Calendar :Calendar 类是一个抽象类.Calendar rightNow = Calendar.getInstance();可以使用三种方法更改日历字段:set()、add() 和 roll()。set(f, value) 将日历字段 f 更改为 value。此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段 f 是立即更改的,但是直到下次调用 get()、getTime()、getTimeInMillis()、 add() 或 roll() 时才会重新计算
4、日历的时间值(以毫秒为单位)。因此,多次调 用 set() 不会触发多次不必要的计算。add(f, delta) 将 delta 添加到 f 字段中。这等同于调用 set(f, get(f) + delta)roll(f, delta) 将 delta 添加到 f 字段中,但不更改更大的字段。java.util.GregorianCalendar:GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家 使用的标准日历系统。java.text.DateFormat:DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并 分析日
5、期或时间。java.text.SimpleDateFormat:SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 - 文本)、分析(文本 - 日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是, 仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法 都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用 apply
6、Pattern 方法来修改格式模式。日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 A 到 Z 和 az被解释为模式字母,用来表示日期或时间字符串元素。引用字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份中的星期 Number 2 E 星期中的天数 Text Tuesday; Tue a A
7、m/pm 标记 Text PM H 一天中的小时数(0-23) Number 0 k 一天中的小时数(1-24) Number 24 K am/pm 中的小时数(0-11) Number 0 h am/pm 中的小时数(1-12) Number 12 m 小时中的分钟数 Number 30 s 分钟中的秒数 Number 55 S 毫秒数 Number 978 z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 Z 时区 RFC 822 time zone -0800日期和时间模式 结果 yyyy.MM.dd G at HH
8、: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 oclock a, zzzz 12 oclock PM, Pacific Daylight Time K:mm a, z 0:08 PM, PDT yyyyy.MMMMM.dd GGG hh:mm aaa 02001.July.04 AD 12:EEE, d MMM yyyy HH:ss Z Wed, 4 Jul 2001 12:56 -0700 yyMMddHHmmssZ 010704120856-0700 yyyy-MM-
9、ddTHH:ss.SSSZ 2001-07-04T12:56.235-0700获得当前系统的毫秒数:代码package org.lokvin.example.calendar;public class CalendarExample1 public static void main(String args) java.util.Date date = new java.util.Date(); /获得当前系统的毫秒数,自 1970.1.1 00:00 GMT long time = System.currentTimeMillis(); java.util.Date date1 = new j
10、ava.util.Date(time); System.out.println(date = + date.toString();millisecond = + time);date1 = + date1.toString(); 运行结果:date = Mon Dec 04 16:01:16 CST 2006 millisecond = 1165219276771 date1 = Mon Dec 04 16:16 CST 2006import java.util.Calendar;import java.util.GregorianCalendar;public class CalendarE
11、xample2 /获得当前日期 Calendar calendar = Calendar.getInstance(); int era = calendar.get(Calendar.ERA);/ 0 = BC, 1 = ADERA = + era); int year = calendar.get(Calendar.YEAR); /2006YEAR = + year); int month = calendar.get(Calendar.MONTH); /获得当前月份, 0.11 表示 JAN.DECMonth = + month);/0 = JAN . 11 = DEC int day =
12、 calendar.get(Calendar.DAY_OF_MONTH);Day of Month = + day); / 1 /获得日期在本周的天数, Sun=1, Mon=2 . Sta=7 int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);Day of Week = + day_of_week); /获得当前时间 12 时制是 Calendar.HOUR int hour12 = calendar.get(Calendar.HOUR); /获得 AM ,PM , 0 = AM, 1 = PM int ampm = calendar.
13、get(Calendar.AM_PM);hour 12 = + hour12);am pm = + ampm); /0 = am , 1 = pm /获得当前时间 24 时制 Calendar.HOUR_OF_DAY int hour24 = calendar.get(Calendar.HOUR_OF_DAY);hour 24 = + hour24); Calendar today = new GregorianCalendar(2006, Calendar.DECEMBER, 4); /Calendar.getInstance() 得到当前具体到毫秒的一个时间点calendar = + ca
14、lendar.getTime().toString(); /通过 new GregorianCalendar(2006, Calendar.DECEMBER, 4) /生成的 calendar 除了指定的年,月,日其余为0(时分秒0)today = + today.getTime().toString();ERA = 1 YEAR = 2006 Month = 11 Day of Month = 4 Day of Week = 2 hour 12 = 4 am pm = 1 hour 24 = 16 calendar = Mon Dec 04 16:22:42 CST 2006 today =
15、 Mon Dec 04 00:00 CST 2006两个日期之间的比较:/* 比较两个 calendar 对象之间的先后*/public class CalendarExample3 /日期比较 Calendar xmas = new GregorianCalendar(2006, Calendar.DECEMBER, 25); Calendar newYear = new GregorianCalendar(2007, Calendar.JANUARY, 1); /比较两个日期先后 boolean flag = xmas.before(newYear);flag = + flag); fla
16、g = xmas.after(newYear); /两个日期相差的毫秒数 long timeDiffMillis = newYear.getTimeInMillis() - xmas.getTimeInMillis();time diff millis = + timeDiffMillis); /两个日期相差的秒数 long diffSecs = timeDiffMillis / 1000;time diff secs = + diffSecs); /两个日期相差的分钟 long diffMins = timeDiffMillis / (1000 * 60);time diff mins =
17、+ diffMins); /两个日期相差的小时 long diffHours = timeDiffMillis / (1000 * 60 * 60);time diff hours = + diffHours); /两个日期相差的天 long diffDays = timeDiffMillis / (1000 * 60 * 60 * 24);time diff days = + diffDays);flag = true flag = false time diff millis = 604800000 time diff secs = 604800 time diff mins = 1008
18、0 time diff hours = 168 time diff days = 7使用Calendar 计算年龄:* 计算年龄public class CalendarExample4 /创建生日的 Calendar 对象 Calendar birthDate = new GregorianCalendar(1979, Calendar.JULY, 7); Calendar today = Calendar.getInstance(); int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR); /如果还没有过生日,则
19、 age - 1 birthDate.add(Calendar.YEAR, age); if(today.before(birthDate) age-;age = + age);判断是否为闰年:* 判断是否为闰年 leap yearpublic class CalendarExample5 /判断是否闰年 leap year GregorianCalendar cal = new GregorianCalendar(); boolean isLeapYear = cal.isLeapYear(1998);is leap year 1998 = + isLeapYear); isLeapYear
20、 = cal.isLeapYear(2000);is leap year 2000 = 运行结果 :is leap year 1998 = false is leap year 2000 = true获得其他时区的时间:import java.util.TimeZone;* 获得其他时区当前时间public class CalendarExample6 Calendar cal = new GregorianCalendar(); int hour12 = cal.get(Calendar.HOUR); int hour24 = cal.get(Calendar.HOUR_OF_DAY);hour12
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1