@@ -36,16 +36,14 @@ public String format(final Long ms) {
36
36
}
37
37
38
38
Use use = Use .UTC ;
39
- String pattern = "YYYY-MM-DDTHH :mm:ss.SSS[Z] " ;
39
+ String pattern = "YYYY-MM-DD[T]HH :mm:ss.SSSZ " ;
40
40
int offsetMinutes = 0 ;
41
41
String zoneId = "UTC" ;
42
42
43
43
final UserPreferences userPreferences = userPreferencesManager .getCurrentUserPreferences ();
44
44
if (userPreferences != null ) {
45
- if (userPreferences .getDateTimePattern () != null
46
- && userPreferences .getDateTimePattern ().trim ().length () > 0 ) {
47
- pattern = userPreferences .getDateTimePattern ();
48
- pattern = convertJavaDateTimePattern (pattern );
45
+ if (userPreferences .getDateTimePattern () != null &&
46
+ userPreferences .getDateTimePattern ().trim ().length () > 0 ) {
49
47
50
48
final TimeZone timeZone = userPreferences .getTimeZone ();
51
49
if (timeZone != null ) {
@@ -62,9 +60,20 @@ public String format(final Long ms) {
62
60
63
61
zoneId = timeZone .getId ();
64
62
}
63
+
64
+ pattern = userPreferences .getDateTimePattern ();
65
+ pattern = convertJavaDateTimePattern (pattern );
65
66
}
66
67
}
67
68
69
+ // If UTC then just display the `Z` suffix.
70
+ if (Use .UTC .equals (use )) {
71
+ pattern = pattern .replaceAll ("Z" , "[Z]" );
72
+ }
73
+ // Ensure we haven't doubled up square brackets.
74
+ pattern = pattern .replaceAll ("\\ [+" , "[" );
75
+ pattern = pattern .replaceAll ("]+" , "]" );
76
+
68
77
return nativeToDateString (ms , use .getDisplayValue (), pattern , zoneId , offsetMinutes );
69
78
}
70
79
@@ -73,7 +82,8 @@ String convertJavaDateTimePattern(final String pattern) {
73
82
converted = converted .replace ('y' , 'Y' );
74
83
converted = converted .replace ('d' , 'D' );
75
84
converted = converted .replaceAll ("'" , "" );
76
- converted = converted .replaceAll ("SSSXX" , "SSS[Z]" );
85
+ converted = converted .replaceAll ("SSSXX" , "SSSZ" );
86
+ converted = converted .replaceAll ("T" , "[T]" );
77
87
converted = converted .replaceAll ("xxx" , "Z" );
78
88
converted = converted .replaceAll ("xx" , "z" );
79
89
converted = converted .replaceAll ("VV" , "ZZ" );
0 commit comments