Joda-Time開源庫

來源:互聯網
上載者:User

標籤:att   系統   ret   tin   nbsp   參數   pre   const   區間   

Joda-Time是一個面向 Java? 平台的便於使用的開源時間日期庫。

依賴

1 <dependency>2     <groupId>joda-time</groupId>3     <artifactId>joda-time</artifactId>4     <version>2.9.9</version>5 </dependency>

用法

1.時間日期類產生

 1 //方法一:取系統點間   2 DateTime dt1 = new DateTime();   3    4 //方法二:通過java.util.Date對象產生   5 DateTime dt2 = new DateTime(new Date());   6    7 //方法三:指定年月日點分秒產生(參數依次是:年,月,日,時,分,秒,毫秒)   8 DateTime dt3 = new DateTime(2012, 5, 20, 13, 14, 0, 0);   9   10 //方法四:ISO8601形式產生  11 DateTime dt4 = new DateTime("2012-05-20");  12 DateTime dt5 = new DateTime("2012-05-20T13:14:00");  13   14 //只需要年月日的時候  15 LocalDate localDate = new LocalDate(2009, 9, 6);// September 6, 2009  16   17 //只需要時分秒毫秒的時候  18 LocalTime localTime = new LocalTime(13, 30, 26, 0);// 1:30:26PM  

2.擷取年月日點分秒

 1 DateTime dt = new DateTime();   2 //年   3 int year = dt.getYear();   4 //月   5 int month = dt.getMonthOfYear();   6 //日   7 int day = dt.getDayOfMonth();   8 //星期   9 int week = dt.getDayOfWeek();  10 //點  11 int hour = dt.getHourOfDay();  12 //分  13 int min = dt.getMinuteOfHour();  14 //秒  15 int sec = dt.getSecondOfMinute();  16 //毫秒  17 int msec = dt.getMillisOfSecond(); 

3.星期的處理

 1 DateTime dt = new DateTime();   2    3 //星期   4 switch(dt.getDayOfWeek()) {   5 case DateTimeConstants.SUNDAY:   6     System.out.println("星期日");   7     break;   8 case DateTimeConstants.MONDAY:   9     System.out.println("星期一");  10     break;  11 case DateTimeConstants.TUESDAY:  12     System.out.println("星期二");  13     break;  14 case DateTimeConstants.WEDNESDAY:  15     System.out.println("星期三");  16     break;  17 case DateTimeConstants.THURSDAY:  18     System.out.println("星期四");  19     break;  20 case DateTimeConstants.FRIDAY:  21     System.out.println("星期五");  22     break;  23 case DateTimeConstants.SATURDAY:  24     System.out.println("星期六");  25     break;  26 }  

4.與JDK對象轉換

 1 DateTime dt = new DateTime();   2    3 //轉換成java.util.Date對象   4 Date d1 = new Date(dt.getMillis());   5 Date d2 = dt.toDate();   6    7 //轉換成java.util.Calendar對象   8 Calendar c1 = Calendar.getInstance();   9 c1.setTimeInMillis(dt.getMillis());  10 Calendar c2 = dt.toCalendar(Locale.getDefault()); 

5.日期前後推算

 1 DateTime dt = new DateTime();   2    3 //昨天   4 DateTime yesterday = dt.minusDays(1);          5 //明天   6 DateTime tomorrow = dt.plusDays(1);        7 //1個月前   8 DateTime before1month = dt.minusMonths(1);         9 //3個月後  10 DateTime after3month = dt.plusMonths(3);          11 //2年前  12 DateTime before2year = dt.minusYears(2);          13 //5年後  14 DateTime after5year = dt.plusYears(5);  

6.時間比較

DateTime d1 = new DateTime("2012-02-01");  DateTime d2 = new DateTime("2012-05-01");    //和系統時間比  boolean b1 = d1.isAfterNow();  boolean b2 = d1.isBeforeNow();  boolean b3 = d1.isEqualNow();    //和其他日期比  boolean f1 = d1.isAfter(d2);  boolean f2 = d1.isBefore(d2);  boolean f3 = d1.isEqual(d2); 

7.時間差

 1 DateTime begin = new DateTime("2012-02-01");   2 DateTime end = new DateTime("2012-05-01");   3    4 //計算區間毫秒數   5 Duration d = new Duration(begin, end);   6 long time = d.getMillis();   7    8 //計算區間天數   9 Period p = new Period(begin, end, PeriodType.days());  10 int days = p.getDays();  11   12 //計算特定日期是否在該區間內  13 Interval i = new Interval(begin, end);  14 boolean contained = i.contains(new DateTime("2012-03-01"));  

8.格式化輸出

1 DateTime dateTime = new DateTime();  2   3 String s1 = dateTime.toString("yyyy/MM/dd hh:mm:ss.SSSa");  4 String s2 = dateTime.toString("yyyy-MM-dd HH:mm:ss");  5 String s3 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");  6 String s4 = dateTime.toString("yyyy/MM/dd HH:mm ZZZZ");  7 String s5 = dateTime.toString("yyyy/MM/dd HH:mm Z"); 

 

Joda-Time的Util模板

 1 public class DataTimeUtil{ 2      3     public static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss"; 4  5     public static Date strToDate(String dataTimeStr){ 6         DataTimeFormatter dateTimeFormatter = DataTimeFormat.forPattern(STANDARD_FORMAT); 7         DateTime dateTime = dateTimeFormatter.parseDateTime(dataTimeStr); 8         return dateTime.toDate(); 9     }10     11     public static String dateToStr(Date date){12         if (date = null){13             return StringUtils.EMPTY;14         }15         DateTime dateTime = new Datetime(date);16         return datetime.toString(STANDARD_FORMAT);17     }18 }

 

 

參考:https://www.ibm.com/developerworks/cn/java/j-jodatime.html

Joda-Time開源庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.