@@ -36,16 +36,14 @@ public String format(final Long ms) {
3636 }
3737
3838 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 " ;
4040 int offsetMinutes = 0 ;
4141 String zoneId = "UTC" ;
4242
4343 final UserPreferences userPreferences = userPreferencesManager .getCurrentUserPreferences ();
4444 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 ) {
4947
5048 final TimeZone timeZone = userPreferences .getTimeZone ();
5149 if (timeZone != null ) {
@@ -62,9 +60,20 @@ public String format(final Long ms) {
6260
6361 zoneId = timeZone .getId ();
6462 }
63+
64+ pattern = userPreferences .getDateTimePattern ();
65+ pattern = convertJavaDateTimePattern (pattern );
6566 }
6667 }
6768
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+
6877 return nativeToDateString (ms , use .getDisplayValue (), pattern , zoneId , offsetMinutes );
6978 }
7079
@@ -73,7 +82,8 @@ String convertJavaDateTimePattern(final String pattern) {
7382 converted = converted .replace ('y' , 'Y' );
7483 converted = converted .replace ('d' , 'D' );
7584 converted = converted .replaceAll ("'" , "" );
76- converted = converted .replaceAll ("SSSXX" , "SSS[Z]" );
85+ converted = converted .replaceAll ("SSSXX" , "SSSZ" );
86+ converted = converted .replaceAll ("T" , "[T]" );
7787 converted = converted .replaceAll ("xxx" , "Z" );
7888 converted = converted .replaceAll ("xx" , "z" );
7989 converted = converted .replaceAll ("VV" , "ZZ" );
0 commit comments