由于本人水平所限,这里只讨论java中对日期的几个简单类: 1. java.util.Date 2. java.text.DateFormat(Abstract),java.text.SimpleDateFormat 3. java.util.Calendar(Abstract),java.util。GregorianCalendar 首先看一下Date类,Date中只提供了几个获得本地时间的方法,具体用法见下: import java.util.Date; 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.println(System.currentTimeMillis()); } }输出结果为: 2004-12-31 9:34:04 31 Dec 2004 01:34:04 GMT 1104456844281 1104456844500 从结果中可以看到,dt.getTime()与System.currentTimeMillis()这两个方法得到的时间是相同的。因为Date的构造函数中调用了System.currentTimeMillis()方法来从系统获得当前时间。其结果实际上是从1970年1月1日开始到当前所经历的毫秒数。 以下的例子展示的是一个简单的格式化日期的代码: import java.text.*; import 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(new 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 2004 2004-12-31 04-12-31 上午9:48 2004-12-31 SimpleDateFormat的构造函数中String中字符的含义列如下表: Letter Date or Time Component PresentationExamples 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 2 DDay in year Number 189 d Day in month Number 10 FDay of week in month Number 2 EDay in week Text Tuesday; Tue aAm/pm marker Text PM HHour in day (0-23) Number 0 k Hour in day (1-24) Number 24 KHour in am/pm (0-11) Number 0 hHour in am/pm (1-12) Number 12 m Minute in hour Number 30 sSecond in minute Number 55 S Millisecond Number 978 z Time zone General time zone PacificStandard Time; PST; GMT-08:00 Z Time zone RFC 822 time zon 上面展示的例子是将Date格式化成我们想要的格式,通常还会遇到需要将有些已经格式好的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{ dt=sdf.parse(dateToparse); System.out.print(dt); }catch(Exception e){ e.printStackTrace(); } } } |
|