View Javadoc
1   package top.infra.jackson2;
2   
3   import static org.joda.time.format.DateTimeFormat.forPattern;
4   
5   import org.joda.time.DateTime;
6   import org.joda.time.DateTimeZone;
7   import org.joda.time.Minutes;
8   import org.joda.time.format.DateTimeFormat;
9   import org.joda.time.format.DateTimeFormatter;
10  
11  import java.util.TimeZone;
12  
13  /**
14   * Created by zhanghaolun on 16/6/20.
15   */
16  public abstract class DefaultTimeZone {
17  
18      public static final String CRON_EVERY_30_SECONDS = "0/30 * * * * ?";
19  
20      public static final DateTimeZone DEFAULT_DATE_TIME_ZONE = DateTimeZone.getDefault();
21      public static final TimeZone DEFAULT_TIME_ZONE = DEFAULT_DATE_TIME_ZONE.toTimeZone();
22      public static final DateTime EPOCH = new DateTime(0L, DEFAULT_DATE_TIME_ZONE);
23  
24      /**
25       * see: http://stackoverflow.com/questions/15245307/java-simpledateformat-timezone-offset-with-minute-separated-by-colon
26       * You can get the timezone offset formatted like +08:00
27       * with the SimpleDateFormat in Java 7 (yyyy-MM-dd'T'HH:mm:ss.SSSXXX)
28       * with the Joda's DateTimeFormat (yyyy-MM-dd'T'HH:mm:ss.SSSZZ)
29       */
30      public static final String PATTERN_JAVA_ISO8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
31      //public static final String PATTERN_JODA_ISO8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
32      public static final String PATTERN_JODA_ISO8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSZZ";
33  
34      public static final DateTimeFormatter yyyyMMdd_HHmmss;
35      public static final DateTimeFormatter ISO8601;
36  
37      static {
38          yyyyMMdd_HHmmss = forPattern("yyyyMMdd-HH:mm:ss").withZone(DEFAULT_DATE_TIME_ZONE);
39          ISO8601 = DateTimeFormat.forPattern(PATTERN_JODA_ISO8601).withZone(DEFAULT_DATE_TIME_ZONE);
40      }
41  
42      private DefaultTimeZone() {
43      }
44  
45      public static DateTime now() {
46          return DateTime.now(DEFAULT_DATE_TIME_ZONE);
47      }
48  
49      public static Integer minutesSinceEpoch(final DateTime dateTime) {
50          return Minutes.minutesBetween(EPOCH, dateTime).getMinutes();
51      }
52  }