Chinaunix首页 | 论坛 | 博客
  • 博客访问: 533346
  • 博文数量: 135
  • 博客积分: 3568
  • 博客等级: 中校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-19 17:52
文章分类

全部博文(135)

文章存档

2012年(29)

2011年(41)

2010年(26)

2009年(12)

2008年(9)

2007年(12)

2006年(6)

分类: Java

2012-09-13 11:38:16

Joda Time 是一个比JDK内置的日期处理API更易于使用、高效的类库。
初次尝试使用,写个示例程序,用于将来使用时能快速参考。


TestJodaTime.java

点击(此处)折叠或打开

  1. import java.util.Calendar;
  2. import java.util.Locale;

  3. import org.joda.time.DateTime;
  4. import org.joda.time.format.DateTimeFormat;
  5. import org.joda.time.format.DateTimeFormatter;
  6. import org.joda.time.format.ISODateTimeFormat;

  7. public class TestJodaTime {

  8.     public static void main(String[] args) {

  9.         // JDK Caendar, Date -> Joda DateTime
  10.         System.out.println(new DateTime(Calendar.getInstance()));
  11.         System.out.println(new DateTime(Calendar.getInstance().getTime()));

  12.         System.out.println("*****************");
  13.         DateTime dt = DateTime.now();

  14.         // Joda DateTime -> JDK Caendar, Date
  15.         System.out.println(dt);
  16.         System.out.println(dt.toDate());
  17.         System.out.println(dt.toCalendar(Locale.CHINA));

  18.         // Joda DateTime plus/minus
  19.         DateTime dt1 = dt.plusYears(1).plusDays(1).minusHours(1);
  20.         System.out.println(dt1);

  21.         // Joda DateTime field access
  22.         System.out.println("----------------");
  23.         System.out.println(dt.getMonthOfYear());
  24.         System.out.println(dt.monthOfYear().getAsText());
  25.         System.out.println(dt.monthOfYear().getAsShortText(Locale.FRENCH));

  26.         System.out.println("================");
  27.         // format : ISO
  28.         DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
  29.         String str = fmt.print(dt);
  30.         System.out.println(str);

  31.         // format : pattern
  32.         fmt = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss.SSS Z");
  33.         str = fmt.withLocale(Locale.ENGLISH).print(dt);
  34.         System.out.println(str);

  35.         System.out.println("################");
  36.         // parse : pattern
  37.         DateTime dt2 = fmt.parseDateTime("2000/01/02 03:04:05.006 +0800");
  38.         System.out.println(dt2);

  39.     }

  40. }
  41. /* Output Sample :
  42. 2012-09-13T11:37:50.203+08:00
  43. 2012-09-13T11:37:50.625+08:00
  44. *****************
  45. 2012-09-13T11:37:50.640+08:00
  46. Thu Sep 13 11:37:50 CST 2012
  47. java.util.GregorianCalendar[time=1347507470640,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=3,DAY_OF_MONTH=13,DAY_OF_YEAR=257,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=37,SECOND=50,MILLISECOND=640,ZONE_OFFSET=28800000,DST_OFFSET=0]
  48. 2013-09-14T10:37:50.640+08:00
  49. ----------------
  50. 9
  51. 九月
  52. sept.
  53. ================
  54. 2012-09-13T11:37:50.640+08:00
  55. 2012/09/13 11:37:50.640 +0800
  56. ################
  57. 2000-01-02T03:04:05.006+08:00
  58. */


阅读(2041) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~