001
014
015 package com.liferay.portal.kernel.util;
016
017 import java.util.Comparator;
018 import java.util.Locale;
019 import java.util.TimeZone;
020
021
024 public class TimeZoneComparator implements Comparator<TimeZone> {
025
026 public TimeZoneComparator() {
027 }
028
029
032 public TimeZoneComparator(Locale locale) {
033 _locale = locale;
034 }
035
036 @Override
037 public int compare(TimeZone timeZone1, TimeZone timeZone2) {
038 Integer totalOffset1 =
039 timeZone1.getRawOffset() + timeZone1.getDSTSavings();
040 Integer totalOffset2 =
041 timeZone2.getRawOffset() + timeZone2.getDSTSavings();
042
043 int value = totalOffset1.compareTo(totalOffset2);
044
045 if (value == 0) {
046 String timeZoneId1 = timeZone1.getID();
047 String timeZoneId2 = timeZone2.getID();
048
049 value = timeZoneId1.compareTo(timeZoneId2);
050 }
051
052 return value;
053 }
054
055 private Locale _locale;
056
057 }