




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java日期转化操作大全时间和日期中常用到的几个类:java.util.Date,java.util.Calendar,java.util.GregorainCalendar,java.text.DateFormat,java.text.SimpleDateFormatjava.util.Date :表示特定瞬间,精确到毫秒一天是 24 * 60 * 60 = 86400 秒世界时(UT 或 UTC) , 格林威治时间 (GMT), 格林威治时(GMT)和世界时(UT)是相等的,格林威治时(GMT) 是标准的民间称呼, 世界时(UT) 是相同标准的科学称呼。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。(中文版的jdk 真是好啊,跟科普教材是的,呵呵)常用的构造方法 :Date();Date(long date)(long date) 表示从标准基准时间(称为 历元 epoch ,即 1970.1.100:00:00 GMT)经历的毫秒数。还有一些构造方法已经 deprecated 了主要的方法:(介绍几个常用的,详细的查询 jdk 文档)boolean after(Date when) 测试日期在此日期之后。boolean before(Date when) 测试日期在此日期之前。Object clone() 返回此对象的副本long getTime() 返回自 1970.1.1 00:00:00 GMT 后,此对象表示的毫秒数void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日00:00: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)。mon 是月份 (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 位十进制数。使用 System.currentTimeMillis() 获得当前系统时间的毫秒数java.util.Calendar :Calendar 类是一个抽象类.Calendar rightNow = Calendar.getInstance();可以使用三种方法更改日历字段:set()、add() 和 roll()。set(f, value) 将日历字段 f 更改为 value。此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段f 是立即更改的,但是直到下次调用 get()、getTime()、getTimeInMillis()、add() 或 roll() 时才会重新计算日历的时间值(以毫秒为单位)。因此,多次调用 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 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。java.text.SimpleDateFormat:SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 - 文本)、分析(文本 - 日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用applyPattern 方法来修改格式模式。日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 A 到 Z 和 a 到 z被解释为模式字母,用来表示日期或时间字符串元素。 引用字母 日期或时间元素 表示 示例G Era 标志符 Text ADy 年 Year 1996; 96M 年中的月份 Month July; Jul; 07w 年中的周数 Number 27W 月份中的周数 Number 2D 年中的天数 Number 189d 月份中的天数 Number 10F 月份中的星期 Number 2E 星期中的天数 Text Tuesday; Tuea Am/pm 标记 Text PMH 一天中的小时数(0-23) Number 0k 一天中的小时数(1-24) Number 24K am/pm 中的小时数(0-11) Number 0h am/pm 中的小时数(1-12) Number 12m 小时中的分钟数 Number 30s 分钟中的秒数 Number 55S 毫秒数 Number 978z 时区 General time zone Pacific Standard Time; PST; GMT-08:00Z 时区 RFC 822 time zone -0800 引用日期和时间模式 结果yyyy.MM.dd G at HH:mm:ss z 2001.07.04 AD at 12:08:56 PDTEEE, MMM d, yy Wed, Jul 4, 01h:mm a 12:08 PMhh oclock a, zzzz 12 oclock PM, Pacific Daylight TimeK:mm a, z 0:08 PM, PDTyyyyy.MMMMM.dd GGG hh:mm aaa 02001.July.04 AD 12:08 PMEEE, d MMM yyyy HH:mm:ss Z Wed, 4 Jul 2001 12:08:56 -0700yyMMddHHmmssZ 010704120856-0700yyyy-MM-ddTHH:mm:ss.SSSZ 2001-07-04T12:08:56.235-0700 获得当前系统的毫秒数:Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.public class CalendarExample1 04. 05. public static void main(String args) 06. 07. java.util.Date date = new java.util.Date(); 08. /获得当前系统的毫秒数,自 1970.1.1 00:00:00 GMT 09. long time = System.currentTimeMillis(); 10. java.util.Date date1 = new java.util.Date(time); 11. System.out.println(date = + date.toString(); 12. System.out.println(millisecond = + time); 13. System.out.println(date1 = + date1.toString(); 14. 15. 16.运行结果:引用date = Mon Dec 04 16:01:16 CST 2006millisecond = 1165219276771date1 = Mon Dec 04 16:01:16 CST 2006代码:Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.import java.util.Calendar; 04.import java.util.GregorianCalendar; 05. 06.public class CalendarExample2 07. 08. public static void main(String args) 09. /获得当前日期 10. Calendar calendar = Calendar.getInstance(); 11. int era = calendar.get(Calendar.ERA);/ 0 = BC, 1 = AD 12. System.out.println(ERA = + era); 13. int year = calendar.get(Calendar.YEAR); /2006 14. System.out.println(YEAR = + year); 15. int month = calendar.get(Calendar.MONTH); 16. /获得当前月份, 0.11 表示 JAN.DEC 17. System.out.println(Month = + month);/0 = JAN . 11 = DEC 18. int day = calendar.get(Calendar.DAY_OF_MONTH); 19. System.out.println(Day of Month = + day); / 1 20. /获得日期在本周的天数, Sun=1, Mon=2 . Sta=7 21. int day_of_week = calendar.get(Calendar.DAY_OF_WEEK); 22. System.out.println(Day of Week = + day_of_week); 23. 24. /获得当前时间 12 时制是 Calendar.HOUR 25. int hour12 = calendar.get(Calendar.HOUR); 26. /获得 AM ,PM , 0 = AM, 1 = PM 27. int ampm = calendar.get(Calendar.AM_PM); 28. System.out.println(hour 12 = + hour12); 29. System.out.println(am pm = + ampm); /0 = am , 1 = pm 30. /获得当前时间 24 时制 Calendar.HOUR_OF_DAY 31. int hour24 = calendar.get(Calendar.HOUR_OF_DAY); 32. System.out.println(hour 24 = + hour24); 33. 34. 35. Calendar today = new GregorianCalendar(2006, Calendar.DECEMBER, 4); 36. /Calendar.getInstance() 得到当前具体到毫秒的一个时间点 37. System.out.println(calendar = + calendar.getTime().toString(); 38. /通过 new GregorianCalendar(2006, Calendar.DECEMBER, 4) 39. /生成的 calendar 除了指定的年,月,日其余为0(时分秒0) 40. System.out.println(today = + today.getTime().toString(); 41. 42. 43. 44. 45. 运行结果:引用ERA = 1YEAR = 2006Month = 11Day of Month = 4Day of Week = 2hour 12 = 4am pm = 1hour 24 = 16calendar = Mon Dec 04 16:22:42 CST 2006today = Mon Dec 04 00:00:00 CST 2006两个日期之间的比较:代码:Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.import java.util.Calendar; 04.import java.util.GregorianCalendar; 05. 06./* 07.* 比较两个 calendar 对象之间的先后 08.*/ 09.public class CalendarExample3 10. 11. public static void main(String args) 12. /日期比较 13. Calendar xmas = new GregorianCalendar(2006, Calendar.DECEMBER, 25); 14. Calendar newYear = new GregorianCalendar(2007, Calendar.JANUARY, 1); 15. 16. /比较两个日期先后 17. boolean flag = xmas.before(newYear); 18. System.out.println(flag = + flag); 19. 20. flag = xmas.after(newYear); 21. System.out.println(flag = + flag); 22. 23. /两个日期相差的毫秒数 24. long timeDiffMillis = newYear.getTimeInMillis() - xmas.getTimeInMillis(); 25. System.out.println(time diff millis = + timeDiffMillis); 26. 27. /两个日期相差的秒数 28. long diffSecs = timeDiffMillis / 1000; 29. System.out.println(time diff secs = + diffSecs); 30. 31. /两个日期相差的分钟 32. long diffMins = timeDiffMillis / (1000 * 60); 33. System.out.println(time diff mins = + diffMins); 34. 35. /两个日期相差的小时 36. long diffHours = timeDiffMillis / (1000 * 60 * 60); 37. System.out.println(time diff hours = + diffHours); 38. 39. /两个日期相差的天 40. long diffDays = timeDiffMillis / (1000 * 60 * 60 * 24); 41. System.out.println(time diff days = + diffDays); 42. 43. 44. 45. 运行结果: 引用flag = trueflag = falsetime diff millis = 604800000time diff secs = 604800time diff mins = 10080time diff hours = 168time diff days = 7使用Calendar 计算年龄:代码:Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.import java.util.Calendar; 04.import java.util.GregorianCalendar; 05. 06./* 07.* 计算年龄 08.*/ 09.public class CalendarExample4 10. 11. public static void main(String args) 12. /创建生日的 Calendar 对象 13. Calendar birthDate = new GregorianCalendar(1979, Calendar.JULY, 7); 14. Calendar today = Calendar.getInstance(); 15. int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR); 16. 17. /如果还没有过生日,则 age - 1 18. birthDate.add(Calendar.YEAR, age); 19. if(today.before(birthDate) 20. age-; 21. 22. System.out.println(age = + age); 23. 24. 25. 26. 27.判断是否为闰年:28. 29. 30. 31.代码32.package org.lokvin.example.calendar; 33. 34.import java.util.GregorianCalendar; 35. 36./* 37.* 判断是否为闰年 leap year 38.*/ 39.public class CalendarExample5 40. 41. public static void main(String args) 42. /判断是否闰年 leap year 43. GregorianCalendar cal = new GregorianCalendar(); 44. boolean isLeapYear = cal.isLeapYear(1998); 45. System.out.println(is leap year 1998 = + isLeapYear); 46. isLeapYear = cal.isLeapYear(2000); 47. System.out.println(is leap year 2000 = + isLeapYear); 48. 49. 运行结果 :引用is leap year 1998 = falseis leap year 2000 = true 获得其他时区的时间:代码Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.import java.util.Calendar; 04.import java.util.GregorianCalendar; 05.import java.util.TimeZone; 06. 07./* 08.* 获得其他时区当前时间 09.*/ 10. 11.public class CalendarExample6 12. 13. public static void main(String args) 14. 15. Calendar cal = new GregorianCalendar(); 16. int hour12 = cal.get(Calendar.HOUR); 17. int hour24 = cal.get(Calendar.HOUR_OF_DAY); 18. System.out.println(hour12 in our timezone = + hour12); 19. System.out.println(hour24 in our timezone = + hour24); 20. 21. /获得其他时区的当前时间,根据 zoneId 获得时区 22. Calendar calJap = new GregorianCalendar(TimeZone.getTimeZone(Japan); 23. hour12 = calJap.get(Calendar.HOUR); 24. System.out.println(hour12 in japs timezone = + hour12); 25. hour24 = calJap.get(Calendar.HOUR_OF_DAY); 26. System.out.println(hour24 in japs timezone = + hour24); 27. 28. /获得 zoneId 的列表 29. String zoneIds = TimeZone.getAvailableIDs(); 30. for(int i=0; i String zoneId = zoneIdsi; 31. System.out.println(zone id = + zoneId); 32. 33. 34. 运行结果:引用hour12 in our timezone = 5hour24 in our timezone = 17hour12 in japs timezone = 6hour24 in japs timezone = 18zone id = Etc/GMT+12zone id = Etc/GMT+11zone id = MITzone id = Pacific/Apiazone id = Pacific/Midway.格式化日期:Java代码查看源代码打印01.package org.lokvin.example.calendar; 02. 03.import java.text.DateFormat; 04.import java.text.SimpleDateFormat; 05.import java.util.Date; 06. 07.public class DateForamExample 08. public static void main(String args) 09. Date rightNow = new Date(); 10. DateFormat format1 = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); 11. DateFormat format2 = new SimpleDateFormat(yyyy-MM-dd); 12. DateFormat format3 = new SimpleDateFormat(h:mm a); 13. DateFormat format4 = new SimpleDateFormat(yyyy.MM.dd G at HH:mm:ss z); 14. DateFormat format5 = new SimpleDateFormat(EEE, MMM, dd, yyyy); 15. DateFormat format6 = new SimpleDateFormat(yyyy.MM.dd kk:mm oclock a, zzzz); 16. DateFormat format7 = new SimpleDateFormat(yyyyy.MMMMM.dd GGG hh:mm aaa); 17. 18. System.out.println(format1 = + format1.format(rightNow); 19. System.out.println(format2 = + format2.format(rightNow); 20. System.out.println(format3 = + format3.format(rightNow); 21. System.out.println(fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车库认购协议书
- 认领农田协议书
- 镇企联建协议书
- 代供货合作协议书
- 违法评估协议书
- 重名风险协议书
- 中石油减产协议书
- 叙利亚和解协议书
- 钢筋包工协议书
- 农村土租赁协议书
- 中国车载冰箱行业市场前景及投资研究报告
- 道德与法治《我们的衣食之源》教案教学设计(公开课)四年级下册
- 《高级护理实践》课件
- Unit6 Living History of Culture同步梳理-【中职专用】高三英语寒假自学课(高教版2021·基础模块3)
- TL-PMM180超低烟尘使用及维护培训
- 基于UG的汽车安全气囊盖注塑模具设计
- 华中师大一附中2024届高二数学第二学期期末综合测试模拟试题含解析
- 30题中国民航机场消防员岗位常见面试问题含HR问题考察点及参考回答
- 动车乘务员和动车餐吧乘务员培训内容
- 寄生虫的预防 小学生
- 公司危化品管理的关键要素与成功因素
评论
0/150
提交评论