View Javadoc
1   package org.kuali.common.devops.vagrant.cloud.json;
2   
3   import static java.util.TimeZone.getTimeZone;
4   import static org.kuali.common.util.base.Precondition.checkNotBlank;
5   import static org.kuali.common.util.base.Precondition.checkNotNull;
6   
7   import java.text.SimpleDateFormat;
8   import java.util.TimeZone;
9   
10  import org.apache.commons.lang3.builder.Builder;
11  
12  public final class Timestamps {
13  
14      private Timestamps() {
15      }
16  
17      public static final String PRIVATE = "private";
18  
19      private static final String TIMESTAMP_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
20      private static final TimeZone TIMESTAMP_TIMEZONE = getTimeZone("UTC");
21  
22      public static Builder<SimpleDateFormat> newSimpleDateFormatBuilder() {
23          return new SimpleDateFormatBuilder(TIMESTAMP_FORMAT, TIMESTAMP_TIMEZONE);
24      }
25  
26      private static class SimpleDateFormatBuilder implements Builder<SimpleDateFormat> {
27  
28          public SimpleDateFormatBuilder(String format, TimeZone timezone) {
29              this.format = checkNotBlank(format, "format");
30              this.timezone = checkNotNull(timezone, "timezone");
31          }
32  
33          private final String format;
34          private final TimeZone timezone;
35  
36          @Override
37          public SimpleDateFormat build() {
38              SimpleDateFormat sdf = new SimpleDateFormat(format);
39              sdf.setTimeZone(timezone);
40              sdf.setLenient(false);
41              return sdf;
42          }
43  
44      }
45  
46  }