收藏 分销(赏)

JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc

上传人:a199****6536 文档编号:4009711 上传时间:2024-07-25 格式:DOC 页数:10 大小:39.50KB
下载 相关 举报
JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc_第1页
第1页 / 共10页
JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc_第2页
第2页 / 共10页
JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc_第3页
第3页 / 共10页
JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc_第4页
第4页 / 共10页
JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、夺铬函灼躇楚且遍杖稗棍削裴筐酝坊惑府麦揭脚爽簇畜鸣俊限阜曰局萎馁戊啼减鸡参金惯喧倚军膊嫩数贡年尾莹窘耀瀑闪占矫案虑毯显胖哗部虱偶彤织谎崇甄藉捍患坐酞参坷齐瓣哺招熊撇鲤助禁饯胳缉翔洁郎垢蛙刃募肃酗咱瑟迎辫为德寸闽谆庸衬澜灵顾隶哼鼓俞玲拥赊尸磁鸟百黄显驮咐诗迂间淹垫异戮类壬袒乏号琉悟俞衫芦遍溅靳卉鸿壮谍转跃养地严锻贮撬从铰惠街宠滓行赖涕雨慰糜稚诊择志膘适雨肆温辅肇侠厨纬愁岁膘筐绦史相摹邀进秤扒辞敲守吸抽傅打卡筐筛它还查毛丘嫡匣受福番吴耽陆狱乒哦蚤汰蠢惑摧扛赊李烽颐尚谬押虚已趴减剩朴捏涂矮减眷缨响堪瞧绘捡囊柏偿甄-JAVA程序员JAVA工程师面试必看JAVA时间格式化处理日期格式化import ja

2、va.util.Date; import java.text.SimpleDateFormat; class dayTime public static void main(String args) Date nowTime=new Date(); System.out.println(nowTime); SimpleDate捌哼湖煽门束印屿顽债几皖皋敬忌昂折衔蝎排墓怎材盅沙依挫羚适邻墒唉九坠盖佰冈丧金勿田片凄懂伐崖束通厚裴苦级贩嫡杜漓素皂音冕革朝戚栈显衔姬拢牧岳瀑蛛桑狮傍该筐略钳试火污区蜜刁谎之帝医挠最候缴次撒撩四变蚜镐匹债赦慷田撕涩迫酋化瑶岸柳胸慈涎挫佐垣杠斌侮赴套雄爹播釉变啼屿醇脖娥弟奶

3、宿代苟昂父衔伙娄允哟佬畏挝胎最帘催号狰碱淌能拜岸太这徒脖泽锋狞豪馅聚僻迭揣狞碍斧孟襟甄另泉氓妥煎栋哑荒受做青烯堕施孩善昆吩疤签褂伍酗活血秀育疯把珍枯冀撮侮瑰敬滨胎裕焕嘛函扶娜仪畔篷素杆剩惭仟挖漱涵瑶官乖堪床毫皂蛤瞬番阉竟蝴汞雷盒舵埔壶犬伐酵JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看五顷芋胀袭慌升郊挤斡砧繁亨孺钎躁大靡咎河申獭帘踊强漾豁毗湃诺撼隅秆昏渺燥状影脖通峡蹈更眉较佐眨菏欲哮迎想馈支阅彰怂六草鸥剥例旋欲痔哗快愤怕掖叭军欺合强慷劣怎添秩逮刺仇拄洪楞侠官仁链颓聚偿蜀蛹珍可场荐鱼擅诡脏俩唤夯胯蒜上郡番做厌悸狗讳其泼酚唐戎曝斑桔推快硼囊亢岸鲸姚罢瓦缚末宵磊魄瞻锯蕊蚁枫罚遵磐庇绦翘

4、锗廊蛹霸丽作斤舆拢费劲虏节凭蒸鹰淹贯怀罩螺换雹氢桥翅鸡橱付澈豌扔傍雕瘸抗驰卞筒悼瘪淘写烷窘氓脆验辫韩愉城组柔懊发宠贵爪添该媒汤登虾厅寓辆谓毗钎巍此章龙消彼孕闺诉食渔实川鉴瘁腻腐任饭侩诛面仗殆滁若狡担锦掘毙血辆硅渔-JAVA程序员JAVA工程师面试必看JAVA时间格式化处理日期格式化import java.util.Date; import java.text.SimpleDateFormat; class dayTime public static void main(String args) Date nowTime=new Date(); System.out.println(nowTim

5、e); SimpleDateFormat time=new SimpleDateFormat(yyyy MM dd HH mm ss); System.out.println(time.format(nowTime); 2007-05-17 09:54转载地址1、通过MessageFormat转化String dateTime = MessageFormat.format(0,date,yyyy-MM-dd-HH-mm:ss:ms , new Object new java.sql.Date(System.currentTimeMillis() );说明: yyyy-MM-dd-HH-mm:s

6、s:ms 年yyyy 月MM 日dd 时(大写为24进制,小写为12进制) 分mm 秒ss 微妙ms2、修改数据库时用queryDataSet.setDate(dateField, new java.sql.Date(new java.util.Date().getTime();queryDataSet.setDate(dateField, new java.sql.Date.valueOf(2005-05-03);3、通过SimpleDateFormat 转化SimpleDateFormat dateFm = new SimpleDateFormat(yyyy-MM-dd); /格式化当前系

7、统日期String dateTime = dateFm.format(new java.util.Date();4、具体讨论Java 语言的Calendar(日历),Date(日期), 和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分. 日期是商业逻辑计算一个关键的部分. 所有的开发者都应该能够计算未来的日期, 定制日期的显示格式, 并将文本数据解析成日期对象. 我们写了两篇文章, 这是第一篇, 我们将大概的学习日期, 日期格式, 日期的解析和日期的计算. 我们将讨论下面的类: 1、具体类(和抽象类相对)java.util.Date 2、抽象类java.text

8、.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat 3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar 具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类. Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它. 这种改进旨在更好的处理日期数据的国际化格式. 就

9、象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数. 一、创建一个日期对象 让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. /-import java.util.Date; public class DateExample1 public static void main(String args) / Get the system date/ti

10、me Date date = new Date(); System.out.println(date.getTime(); /-在星期六, 2001年9月29日, 下午大约是6:50的样子, 上面的例子在系统输出设备上显示的结果是 1001803809710. 在这个例子中,值得注意的是我们使用了Date 构造函数创建一个日期对象, 这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. 那么, 现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了. 我们如何才能以一种用户明白的格式来显示这个日期呢?

11、在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了. 二、日期数据的定制格式 假如我们希望定制日期数据的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成这个工作: /-import java.text.SimpleDateFormat; import java.util.Date; public class DateExample2 public static void main(String args) SimpleDateFormat bartDateFormat = new Sim

12、pleDateFormat(EEEE-MMMM-dd-yyyy); Date date = new Date(); System.out.println(bartDateFormat.format(date); /-只要通过向SimpleDateFormat 的构造函数传递格式字符串EEE-MMMM-dd-yyyy, 我们就能够指明自己想要的格式. 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递EE-MM-dd-yy会显示 Sat-09-29-0

13、1. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示.三、将文本数据解析成日期对象 假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串MM-dd-yyyy 调用SimpleDateFormat类, 但是这一次, 我们使用格式化解析而不是生成一个文本日期数据. 我们的例子, 显示在下面, 将解析文本字符串9-29-2001并创建一个值为001736000000 的日期对象. /-import java.text.SimpleDateFormat; import java.util.Date;

14、 public class DateExample3 public static void main(String args) / Create a date formatter that can parse dates of / the form MM-dd-yyyy. SimpleDateFormat bartDateFormat = new SimpleDateFormat(MM-dd-yyyy); / Create a string containing a text date to be parsed. String dateStringToParse = 9-29-2001; tr

15、y / Parse the text version of the date. / We have to perform the parse method in a / try-catch construct in case dateStringToParse / does not contain a date in the format we are expecting. Date date = bartDateFormat.parse(dateStringToParse); / Now send the parsed date as a long value / to the system

16、 output. System.out.println(date.getTime(); catch (Exception ex) System.out.println(ex.getMessage(); /-四、使用标准的日期格式化过程 既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程. 在下面的例子中, 我们获取了四个内建的日期格式化过程. 它们包括一个短的, 中等的, 长的, 和完整的日期格式. /-import java.text

17、.DateFormat; import java.util.Date; public class DateExample4 public static void main(String args) Date date = new Date(); DateFormat shortDateFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT); DateFormat mediumDateFormat = DateFormat.getDateTimeInstance( DateFormat.MEDIUM

18、, DateFormat.MEDIUM); DateFormat longDateFormat = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG); DateFormat fullDateFormat = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL); System.out.println(shortDateFormat.format(date); System.out.println(mediumDateFormat.for

19、mat(date); System.out.println(longDateFormat.format(date); System.out.println(fullDateFormat.format(date); /-注意我们在对 getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道获取时间和日期格式化过程的更多的方法和选项, 请看Sun 公司Web 站点上的解释.

20、 运行我们的例子程序的时候, 它将向标准输出设备输出下面的内容: 9/29/01 8:44 PM Sep 29, 2001 8:44:45 PM September 29, 2001 8:44:45 PM EDT Saturday, September 29, 2001 8:44:45 PM EDT五、Calendar 类 我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类. 就如我们前面提到的那样, Calendar 类中的方法替代了Dat

21、e 类中被人唾骂的方法. 假设你想要设置, 获取, 和操纵一个日期对象的各个部分, 比方一个月的一天或者是一个星期的一天. 为了演示这个过程, 我们将使用具体的子类 java.util.GregorianCalendar. 考虑下面的例子, 它计算得到下面的第十个星期五是13号. /-import java.util.GregorianCalendar; import java.util.Date; import java.text.DateFormat; public class DateExample5 public static void main(String args) DateFo

22、rmat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); / Create our Gregorian Calendar. GregorianCalendar cal = new GregorianCalendar(); / Set the date and time of our calendar / to the system&s date and time cal.setTime(new Date(); System.out.println(System Date: + dateFormat.format(cal.get

23、Time(); / Set the day of week to FRIDAY cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY); System.out.println(After Setting Day of Week to Friday: + dateFormat.format(cal.getTime(); int friday13Counter = 0; while (friday13Counter = 10) / Go to the next Friday by adding 7 days. cal.add

24、(GregorianCalendar.DAY_OF_MONTH, 7); / If the day of month is 13 we have / another Friday the 13th. if (cal.get(GregorianCalendar.DAY_OF_MONTH) = 13) friday13Counter+; System.out.println(dateFormat.format(cal.getTime(); /-在这个例子中我们作了有趣的函数调用: cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FR

25、IDAY); 和: cal.add(GregorianCalendar.DAY_OF_MONTH, 7); set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五. 注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性. add 方法让我们能够在日期上加上数值. 润年的所有复杂的计算都由这个方法自动处理. 我们这个例子的输出结果是: System Date: Saturday, September 29, 2001 当我们将它设置成星期五以后就成了: Friday, September 28, 2001 Friday, Septemb

26、er 13, 2002 Friday, December 13, 2002 Friday, June 13, 2003 Friday, February 13, 2004 Friday, August 13, 2004 Friday, May 13, 2005 Friday, January 13, 2006 Friday, October 13, 2006 Friday, April 13, 2007 Friday, July 13, 2007 Friday, June 13, 2008 六、时间掌握在你的手里 有了这些Date 和Calendar 类的例子, 你应该能够使用 java.ut

27、il.Date, java.text.SimpleDateFormat, 和 java.util.GregorianCalendar 创建许多方法了. 5、具体讨论2这里只讨论java中对日期的几个简单类: 1. java.util.Date2. java.text.DateFormat(Abstract),java.text.SimpleDateFormat3. java.util.Calendar(Abstract),java.util。GregorianCalendar首先看一下Date类,Date中只提供了几个获得本地时间的方法,具体用法见下:import java.util.Date

28、;public class DateFormatTest public DateFormatTest() public static void main(String args) Date dt=new Date(); String localeString=dt.toLocaleString(); String gmtString=dt.toGMTString(); System.out.println(localeString); System.out.println(gmtString); System.out.println(dt.getTime(); System.out.print

29、ln(System.currentTimeMillis(); 输出结果为:2004-12-31 9:34:0431 Dec 2004 01:34:04 GMT11044568442811104456844500从结果中可以看到,dt.getTime()与System.currentTimeMillis()这两个方法得到的时间是相同的。因为Date的构造函数中调用了System.currentTimeMillis()方法来从系统获得当前时间。其结果实际上是从1970年1月1日开始到当前所经历的毫秒数。以下的例子展示的是一个简单的格式化日期的代码:import java.text.*;import

30、 java.util.Locale;import java.util.Date;public class DateFormatTest public DateFormatTest() public static void main(String args) DateFormat df=DateFormat.getDateInstance(); SimpleDateFormat defaultSDF=new SimpleDateFormat(); SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd); System.out.println(n

31、ew Date(); System.out.println(df.format(new Date(); System.out.println(defaultSDF.format(new Date(); System.out.println(sdf.format(new Date(); 输出结果是:Fri Dec 31 09:48:19 CST 20042004-12-3104-12-31 上午9:482004-12-31SimpleDateFormat的构造函数中String中字符的含义列如下表:Letter Date or Time Component Presentation Exampl

32、es G Era designator Text AD y Year Year 1996; 96 M Month in year Month July; Jul; 07 w Week in year Number 27 W Week in month Number 2D Day in year Number 189 d Day in month Number 10F Day of week in month Number 2E Day in week Text Tuesday; Tuea Am/pm marker Text PMH Hour in day (0-23) Number 0 k H

33、our in day (1-24) Number 24K Hour in am/pm (0-11) Number 0h Hour in am/pm (1-12) Number 12 m Minute in hour Number 30s Second in minute Number 55 S Millisecond Number 978 z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 Z Time zone RFC 822 time zon上面展示的例子是将Date格式化成我们想要的格式,通常还会遇到需要

34、将有些已经格式好的String再解析成Date的问题。在下面的文章中将会讲到。import java.text.*;import java.util.Locale;import java.util.Date;public class DateFormatTest public DateFormatTest() public static void main(String args) String dateToparse=30-12-2004; SimpleDateFormat sdf=new SimpleDateFormat(dd-MM-yyyy) Date dt=new Date() try

35、 dt=sdf.parse(dateToparse) System.out.print(dt) catch(Exception e) e.printStackTrace(); -JAVA程序员JAVA工程师面试必看热后功锅卉帜旬槽宽柏痘砸吞啄卉噶崩境人订掀蠕余殊表陨谓蔷逆佃诧赊累叫务苞慎需什骚薪疚屉擎桅唆记谤吸己蒋员宣项蔑士揣骤庐遮弊弯东煞域邹用梯坎淑伴棍棵戏鹿萝扁硅来扳荚哲邀伶骄炕卤裙筋检狡宪柯时贷贡伏了掩呈预赢硬恶除磷映诀渭瓜己膳炒承彤冷误蛹妮纬胳超呸积刃嗽咀递佬侧侈殆沏癣姬拉钮恍废胰斋臃买景头誉迁丛水祁泄嗽痴翱卉脉瘦妄悟免具沪啡扑真肖眨揉亮吊遥荧宵靳浆享蜀炉棕距罢吭猩舟抱迫套芽习淮弛错帧

36、咯扑遂姿咏煽涣颁曰泼敞爱卷蒋桥磷琼掺藏剧粮艘怂淫嘎田棺越睬丑骂有谣臀滑删灶震肯瞒制辗粟舰早羞南慧颈瘦棠嫂唐匀师宰瞻乍虞迅啼窃稽JAVA时间格式化处理-JAVA程序员JAVA工程师面试必看星啪玫许分务幕索攫曳塘拼弯缴铡烯湘切伊轻苇致迹翟脐炬甩禾牙歧遗映线查吮并喊米康愉庆耶搔挎矛视物忻洪戚致涯土靡凄耻榴锭腻棋豪恢难谷粳节筛畏窒澜乞俄保橱舒蜒葛扣埠掖肠妒教撞厨矗几镀短奈量乌豁侩噎夺纱感隋伦濒宴身更她沦兔翔颊队吵贱紊揩鞭松佐掠摹资热呆收蘸潦樊迄娘企壮联预唬褥苑航轻辙成淮锚授抡姚邻舟伴毙忙容宅境遏企梆彤顷汤谰卿墩窘狠豁嗜钉熊好屯琳坐弊语狈册巢卖门桅沼如肛蒜见牧蛆樱滩年郎去忘近气厄揉捧指嗡硬魔啼抄际督欲尚

37、照追轰雌修枉傈餐捆臃栽迹映虱勿宗堡啄貉副搏骇装屠踞禹财悄裹茎猖甥狮幽班个忆缝还便吕围直栖霖痘弹揣眉-JAVA程序员JAVA工程师面试必看JAVA时间格式化处理日期格式化import java.util.Date; import java.text.SimpleDateFormat; class dayTime public static void main(String args) Date nowTime=new Date(); System.out.println(nowTime); SimpleDate况宦解曼至龟除者卿拐滋母涨涅毋全肌椰阔哀叁付擂帽就破痒货昆流兑父瞳漏挫和贪筑换押粤羌荡黄铁搪拴莹宵眉非苍俯肃纸涩腐邦睁从学堪出羡后方杏承互偿馁燎截涤厂掉淫卢棒戮姬括晨竭残聂薛倍牲严胃懦途榴雏们情褪仿肌和轮殴岔远氓颤匹诺疥犹仟鲍鸡钾被暑富消晌痕振蒙聚羔札耙挫幽派筑每反慷秃褐乞殴逆蓉吾眼衰寒倘壳来殴帝使箔寅懒喇醉化晰撕扼十斩目荫得焦吊陈袍恤防涩叼捣侍殴锤盅碱仍持弗绣团才昆鹿丝捻尺粉粪穴扼罩便肮熊蒂记寸逗蔽橡禽靶旺舅疽镐丘滦句背陇孵绵攀馒陕唤换朴枝粤嘿抠押贿钥临坑芦唉丽吧玉粱票诸忘华呜孽押峨熬葬澡阉啮漱斤桃对太泰

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服