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
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
26
27
28
29
30 public static final String PATTERN_JAVA_ISO8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
31
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 }