Tuesday, April 5, 2016

Convert Time Between Two Timezone Using Java


package com.pritom.kumar;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * Created by pritom on 5/04/2016.
 */
public class ConvertTimeZone {
    public static void main(String[] args) throws Exception {
        String fromTz = "Australia/Melbourne", toTz = "Pacific/Apia", period = ADD_DATE_AS_DAY;

        for (Integer index = 0; index < 999; index++) {
            Integer hour = index % 12, minute = index % 60;
            String hourS = hour >= 10 ? hour.toString() : "0" + hour;
            String minuteS = minute >= 10 ? minute.toString() : "0" + minute;
            Date date1 = addDate(stringToDate("2016-03-28 " + hourS + ":" + minuteS + ":00"), period, index * 11);
            Date date2 = convertTimeZone(date1, fromTz, toTz);
            Date date3 = convertTimeZone(date2, toTz, fromTz);
            if (index % 10 == 0) {
                pl(fromTz + "    " + toTz + "           " + fromTz);
            }
            pl(dateToString(date1) + " == " + dateToString(date2) + " == " + dateToString(date3));
            String lastOf1 = dateToString(date1).substring(11), lastOf2 = dateToString(date3).substring(11);
            /**
             * If there is any mismatch to convert between two time zones
             * then an exception will be thrown from here.
             */
            if (!lastOf1.equalsIgnoreCase(lastOf2)) {
                throw new Exception(lastOf1 + " != " + lastOf2);
            }
        }
    }

    public static Date convertTimeZone(Date date, String fromTZ, String toTZ) {
        if (!fromTZ.equalsIgnoreCase("gmt") && !toTZ.equalsIgnoreCase("gmt")) {
            date = convertTimeZone(date, fromTZ, "GMT");
            return convertTimeZone(date, "GMT", toTZ);
        }
        TimeZone fromTimeZone = TimeZone.getTimeZone(fromTZ);
        TimeZone toTimeZone = TimeZone.getTimeZone(toTZ);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(fromTimeZone);
        calendar.setTime(date);
        calendar.add(Calendar.MILLISECOND, toTimeZone.getRawOffset());

        if (fromTimeZone.inDaylightTime(calendar.getTime())) {
            calendar.add(Calendar.MILLISECOND, calendar.getTimeZone().getDSTSavings() * -1);
        }
        calendar.add(Calendar.MILLISECOND, fromTimeZone.getRawOffset() * -1);

        if (toTimeZone.inDaylightTime(calendar.getTime())) {
            calendar.add(Calendar.MILLISECOND, toTimeZone.getDSTSavings());
        }
        return calendar.getTime();
    }

    public static Date addDate(Date date, String type, Integer count) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        if (type.equalsIgnoreCase(ADD_DATE_AS_DAY)) {
            cal.add(Calendar.DAY_OF_MONTH, count);
        }
        else if (type.equalsIgnoreCase(ADD_DATE_AS_MONTH)) {
            cal.add(Calendar.MONTH, count);
        }
        else if (type.equalsIgnoreCase(ADD_DATE_AS_YEAR)) {
            cal.add(Calendar.YEAR, count);
        }
        return cal.getTime();
    }


    public static Date stringToDate(String date) throws Exception {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return simpleDateFormat.parse(date);
    }

    public static String dateToString(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(date);
    }

    public static void pl(Object o) {
        System.out.println(o);
    }

    public static final String ADD_DATE_AS_DAY = "DAY";
    public static final String ADD_DATE_AS_MONTH = "MONTH";
    public static final String ADD_DATE_AS_YEAR = "YEAR";
}



Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2016-03-28 00:00:00 == 2016-03-28 03:00:00 == 2016-03-28 00:00:00
2016-04-08 01:01:00 == 2016-04-08 04:01:00 == 2016-04-08 01:01:00
2016-04-19 02:02:00 == 2016-04-19 05:02:00 == 2016-04-19 02:02:00
2016-04-30 03:03:00 == 2016-04-30 06:03:00 == 2016-04-30 03:03:00
2016-05-11 04:04:00 == 2016-05-11 07:04:00 == 2016-05-11 04:04:00
2016-05-22 05:05:00 == 2016-05-22 08:05:00 == 2016-05-22 05:05:00
2016-06-02 06:06:00 == 2016-06-02 09:06:00 == 2016-06-02 06:06:00
2016-06-13 07:07:00 == 2016-06-13 10:07:00 == 2016-06-13 07:07:00
2016-06-24 08:08:00 == 2016-06-24 11:08:00 == 2016-06-24 08:08:00
2016-07-05 09:09:00 == 2016-07-05 12:09:00 == 2016-07-05 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2016-07-16 10:10:00 == 2016-07-16 13:10:00 == 2016-07-16 10:10:00
2016-07-27 11:11:00 == 2016-07-27 14:11:00 == 2016-07-27 11:11:00
2016-08-07 00:12:00 == 2016-08-07 03:12:00 == 2016-08-07 00:12:00
2016-08-18 01:13:00 == 2016-08-18 04:13:00 == 2016-08-18 01:13:00
2016-08-29 02:14:00 == 2016-08-29 05:14:00 == 2016-08-29 02:14:00
2016-09-09 03:15:00 == 2016-09-09 06:15:00 == 2016-09-09 03:15:00
2016-09-20 04:16:00 == 2016-09-20 07:16:00 == 2016-09-20 04:16:00
2016-10-01 05:17:00 == 2016-10-01 09:17:00 == 2016-10-01 05:17:00
2016-10-12 06:18:00 == 2016-10-12 09:18:00 == 2016-10-12 06:18:00
2016-10-23 07:19:00 == 2016-10-23 10:19:00 == 2016-10-23 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2016-11-03 08:20:00 == 2016-11-03 11:20:00 == 2016-11-03 08:20:00
2016-11-14 09:21:00 == 2016-11-14 12:21:00 == 2016-11-14 09:21:00
2016-11-25 10:22:00 == 2016-11-25 13:22:00 == 2016-11-25 10:22:00
2016-12-06 11:23:00 == 2016-12-06 14:23:00 == 2016-12-06 11:23:00
2016-12-17 00:24:00 == 2016-12-17 03:24:00 == 2016-12-17 00:24:00
2016-12-28 01:25:00 == 2016-12-28 04:25:00 == 2016-12-28 01:25:00
2017-01-08 02:26:00 == 2017-01-08 05:26:00 == 2017-01-08 02:26:00
2017-01-19 03:27:00 == 2017-01-19 06:27:00 == 2017-01-19 03:27:00
2017-01-30 04:28:00 == 2017-01-30 07:28:00 == 2017-01-30 04:28:00
2017-02-10 05:29:00 == 2017-02-10 08:29:00 == 2017-02-10 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2017-02-21 06:30:00 == 2017-02-21 09:30:00 == 2017-02-21 06:30:00
2017-03-04 07:31:00 == 2017-03-04 10:31:00 == 2017-03-04 07:31:00
2017-03-15 08:32:00 == 2017-03-15 11:32:00 == 2017-03-15 08:32:00
2017-03-26 09:33:00 == 2017-03-26 12:33:00 == 2017-03-26 09:33:00
2017-04-06 10:34:00 == 2017-04-06 13:34:00 == 2017-04-06 10:34:00
2017-04-17 11:35:00 == 2017-04-17 14:35:00 == 2017-04-17 11:35:00
2017-04-28 00:36:00 == 2017-04-28 03:36:00 == 2017-04-28 00:36:00
2017-05-09 01:37:00 == 2017-05-09 04:37:00 == 2017-05-09 01:37:00
2017-05-20 02:38:00 == 2017-05-20 05:38:00 == 2017-05-20 02:38:00
2017-05-31 03:39:00 == 2017-05-31 06:39:00 == 2017-05-31 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2017-06-11 04:40:00 == 2017-06-11 07:40:00 == 2017-06-11 04:40:00
2017-06-22 05:41:00 == 2017-06-22 08:41:00 == 2017-06-22 05:41:00
2017-07-03 06:42:00 == 2017-07-03 09:42:00 == 2017-07-03 06:42:00
2017-07-14 07:43:00 == 2017-07-14 10:43:00 == 2017-07-14 07:43:00
2017-07-25 08:44:00 == 2017-07-25 11:44:00 == 2017-07-25 08:44:00
2017-08-05 09:45:00 == 2017-08-05 12:45:00 == 2017-08-05 09:45:00
2017-08-16 10:46:00 == 2017-08-16 13:46:00 == 2017-08-16 10:46:00
2017-08-27 11:47:00 == 2017-08-27 14:47:00 == 2017-08-27 11:47:00
2017-09-07 00:48:00 == 2017-09-07 03:48:00 == 2017-09-07 00:48:00
2017-09-18 01:49:00 == 2017-09-18 04:49:00 == 2017-09-18 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2017-09-29 02:50:00 == 2017-09-29 06:50:00 == 2017-09-29 02:50:00
2017-10-10 03:51:00 == 2017-10-10 06:51:00 == 2017-10-10 03:51:00
2017-10-21 04:52:00 == 2017-10-21 07:52:00 == 2017-10-21 04:52:00
2017-11-01 05:53:00 == 2017-11-01 08:53:00 == 2017-11-01 05:53:00
2017-11-12 06:54:00 == 2017-11-12 09:54:00 == 2017-11-12 06:54:00
2017-11-23 07:55:00 == 2017-11-23 10:55:00 == 2017-11-23 07:55:00
2017-12-04 08:56:00 == 2017-12-04 11:56:00 == 2017-12-04 08:56:00
2017-12-15 09:57:00 == 2017-12-15 12:57:00 == 2017-12-15 09:57:00
2017-12-26 10:58:00 == 2017-12-26 13:58:00 == 2017-12-26 10:58:00
2018-01-06 11:59:00 == 2018-01-06 14:59:00 == 2018-01-06 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2018-01-17 00:00:00 == 2018-01-17 03:00:00 == 2018-01-17 00:00:00
2018-01-28 01:01:00 == 2018-01-28 04:01:00 == 2018-01-28 01:01:00
2018-02-08 02:02:00 == 2018-02-08 05:02:00 == 2018-02-08 02:02:00
2018-02-19 03:03:00 == 2018-02-19 06:03:00 == 2018-02-19 03:03:00
2018-03-02 04:04:00 == 2018-03-02 07:04:00 == 2018-03-02 04:04:00
2018-03-13 05:05:00 == 2018-03-13 08:05:00 == 2018-03-13 05:05:00
2018-03-24 06:06:00 == 2018-03-24 09:06:00 == 2018-03-24 06:06:00
2018-04-04 07:07:00 == 2018-04-04 10:07:00 == 2018-04-04 07:07:00
2018-04-15 08:08:00 == 2018-04-15 11:08:00 == 2018-04-15 08:08:00
2018-04-26 09:09:00 == 2018-04-26 12:09:00 == 2018-04-26 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2018-05-07 10:10:00 == 2018-05-07 13:10:00 == 2018-05-07 10:10:00
2018-05-18 11:11:00 == 2018-05-18 14:11:00 == 2018-05-18 11:11:00
2018-05-29 00:12:00 == 2018-05-29 03:12:00 == 2018-05-29 00:12:00
2018-06-09 01:13:00 == 2018-06-09 04:13:00 == 2018-06-09 01:13:00
2018-06-20 02:14:00 == 2018-06-20 05:14:00 == 2018-06-20 02:14:00
2018-07-01 03:15:00 == 2018-07-01 06:15:00 == 2018-07-01 03:15:00
2018-07-12 04:16:00 == 2018-07-12 07:16:00 == 2018-07-12 04:16:00
2018-07-23 05:17:00 == 2018-07-23 08:17:00 == 2018-07-23 05:17:00
2018-08-03 06:18:00 == 2018-08-03 09:18:00 == 2018-08-03 06:18:00
2018-08-14 07:19:00 == 2018-08-14 10:19:00 == 2018-08-14 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2018-08-25 08:20:00 == 2018-08-25 11:20:00 == 2018-08-25 08:20:00
2018-09-05 09:21:00 == 2018-09-05 12:21:00 == 2018-09-05 09:21:00
2018-09-16 10:22:00 == 2018-09-16 13:22:00 == 2018-09-16 10:22:00
2018-09-27 11:23:00 == 2018-09-27 14:23:00 == 2018-09-27 11:23:00
2018-10-08 00:24:00 == 2018-10-08 03:24:00 == 2018-10-08 00:24:00
2018-10-19 01:25:00 == 2018-10-19 04:25:00 == 2018-10-19 01:25:00
2018-10-30 02:26:00 == 2018-10-30 05:26:00 == 2018-10-30 02:26:00
2018-11-10 03:27:00 == 2018-11-10 06:27:00 == 2018-11-10 03:27:00
2018-11-21 04:28:00 == 2018-11-21 07:28:00 == 2018-11-21 04:28:00
2018-12-02 05:29:00 == 2018-12-02 08:29:00 == 2018-12-02 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2018-12-13 06:30:00 == 2018-12-13 09:30:00 == 2018-12-13 06:30:00
2018-12-24 07:31:00 == 2018-12-24 10:31:00 == 2018-12-24 07:31:00
2019-01-04 08:32:00 == 2019-01-04 11:32:00 == 2019-01-04 08:32:00
2019-01-15 09:33:00 == 2019-01-15 12:33:00 == 2019-01-15 09:33:00
2019-01-26 10:34:00 == 2019-01-26 13:34:00 == 2019-01-26 10:34:00
2019-02-06 11:35:00 == 2019-02-06 14:35:00 == 2019-02-06 11:35:00
2019-02-17 00:36:00 == 2019-02-17 03:36:00 == 2019-02-17 00:36:00
2019-02-28 01:37:00 == 2019-02-28 04:37:00 == 2019-02-28 01:37:00
2019-03-11 02:38:00 == 2019-03-11 05:38:00 == 2019-03-11 02:38:00
2019-03-22 03:39:00 == 2019-03-22 06:39:00 == 2019-03-22 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2019-04-02 04:40:00 == 2019-04-02 07:40:00 == 2019-04-02 04:40:00
2019-04-13 05:41:00 == 2019-04-13 08:41:00 == 2019-04-13 05:41:00
2019-04-24 06:42:00 == 2019-04-24 09:42:00 == 2019-04-24 06:42:00
2019-05-05 07:43:00 == 2019-05-05 10:43:00 == 2019-05-05 07:43:00
2019-05-16 08:44:00 == 2019-05-16 11:44:00 == 2019-05-16 08:44:00
2019-05-27 09:45:00 == 2019-05-27 12:45:00 == 2019-05-27 09:45:00
2019-06-07 10:46:00 == 2019-06-07 13:46:00 == 2019-06-07 10:46:00
2019-06-18 11:47:00 == 2019-06-18 14:47:00 == 2019-06-18 11:47:00
2019-06-29 00:48:00 == 2019-06-29 03:48:00 == 2019-06-29 00:48:00
2019-07-10 01:49:00 == 2019-07-10 04:49:00 == 2019-07-10 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2019-07-21 02:50:00 == 2019-07-21 05:50:00 == 2019-07-21 02:50:00
2019-08-01 03:51:00 == 2019-08-01 06:51:00 == 2019-08-01 03:51:00
2019-08-12 04:52:00 == 2019-08-12 07:52:00 == 2019-08-12 04:52:00
2019-08-23 05:53:00 == 2019-08-23 08:53:00 == 2019-08-23 05:53:00
2019-09-03 06:54:00 == 2019-09-03 09:54:00 == 2019-09-03 06:54:00
2019-09-14 07:55:00 == 2019-09-14 10:55:00 == 2019-09-14 07:55:00
2019-09-25 08:56:00 == 2019-09-25 11:56:00 == 2019-09-25 08:56:00
2019-10-06 09:57:00 == 2019-10-06 12:57:00 == 2019-10-06 09:57:00
2019-10-17 10:58:00 == 2019-10-17 13:58:00 == 2019-10-17 10:58:00
2019-10-28 11:59:00 == 2019-10-28 14:59:00 == 2019-10-28 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2019-11-08 00:00:00 == 2019-11-08 03:00:00 == 2019-11-08 00:00:00
2019-11-19 01:01:00 == 2019-11-19 04:01:00 == 2019-11-19 01:01:00
2019-11-30 02:02:00 == 2019-11-30 05:02:00 == 2019-11-30 02:02:00
2019-12-11 03:03:00 == 2019-12-11 06:03:00 == 2019-12-11 03:03:00
2019-12-22 04:04:00 == 2019-12-22 07:04:00 == 2019-12-22 04:04:00
2020-01-02 05:05:00 == 2020-01-02 08:05:00 == 2020-01-02 05:05:00
2020-01-13 06:06:00 == 2020-01-13 09:06:00 == 2020-01-13 06:06:00
2020-01-24 07:07:00 == 2020-01-24 10:07:00 == 2020-01-24 07:07:00
2020-02-04 08:08:00 == 2020-02-04 11:08:00 == 2020-02-04 08:08:00
2020-02-15 09:09:00 == 2020-02-15 12:09:00 == 2020-02-15 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2020-02-26 10:10:00 == 2020-02-26 13:10:00 == 2020-02-26 10:10:00
2020-03-08 11:11:00 == 2020-03-08 14:11:00 == 2020-03-08 11:11:00
2020-03-19 00:12:00 == 2020-03-19 03:12:00 == 2020-03-19 00:12:00
2020-03-30 01:13:00 == 2020-03-30 04:13:00 == 2020-03-30 01:13:00
2020-04-10 02:14:00 == 2020-04-10 05:14:00 == 2020-04-10 02:14:00
2020-04-21 03:15:00 == 2020-04-21 06:15:00 == 2020-04-21 03:15:00
2020-05-02 04:16:00 == 2020-05-02 07:16:00 == 2020-05-02 04:16:00
2020-05-13 05:17:00 == 2020-05-13 08:17:00 == 2020-05-13 05:17:00
2020-05-24 06:18:00 == 2020-05-24 09:18:00 == 2020-05-24 06:18:00
2020-06-04 07:19:00 == 2020-06-04 10:19:00 == 2020-06-04 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2020-06-15 08:20:00 == 2020-06-15 11:20:00 == 2020-06-15 08:20:00
2020-06-26 09:21:00 == 2020-06-26 12:21:00 == 2020-06-26 09:21:00
2020-07-07 10:22:00 == 2020-07-07 13:22:00 == 2020-07-07 10:22:00
2020-07-18 11:23:00 == 2020-07-18 14:23:00 == 2020-07-18 11:23:00
2020-07-29 00:24:00 == 2020-07-29 03:24:00 == 2020-07-29 00:24:00
2020-08-09 01:25:00 == 2020-08-09 04:25:00 == 2020-08-09 01:25:00
2020-08-20 02:26:00 == 2020-08-20 05:26:00 == 2020-08-20 02:26:00
2020-08-31 03:27:00 == 2020-08-31 06:27:00 == 2020-08-31 03:27:00
2020-09-11 04:28:00 == 2020-09-11 07:28:00 == 2020-09-11 04:28:00
2020-09-22 05:29:00 == 2020-09-22 08:29:00 == 2020-09-22 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2020-10-03 06:30:00 == 2020-10-03 10:30:00 == 2020-10-03 06:30:00
2020-10-14 07:31:00 == 2020-10-14 10:31:00 == 2020-10-14 07:31:00
2020-10-25 08:32:00 == 2020-10-25 11:32:00 == 2020-10-25 08:32:00
2020-11-05 09:33:00 == 2020-11-05 12:33:00 == 2020-11-05 09:33:00
2020-11-16 10:34:00 == 2020-11-16 13:34:00 == 2020-11-16 10:34:00
2020-11-27 11:35:00 == 2020-11-27 14:35:00 == 2020-11-27 11:35:00
2020-12-08 00:36:00 == 2020-12-08 03:36:00 == 2020-12-08 00:36:00
2020-12-19 01:37:00 == 2020-12-19 04:37:00 == 2020-12-19 01:37:00
2020-12-30 02:38:00 == 2020-12-30 05:38:00 == 2020-12-30 02:38:00
2021-01-10 03:39:00 == 2021-01-10 06:39:00 == 2021-01-10 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2021-01-21 04:40:00 == 2021-01-21 07:40:00 == 2021-01-21 04:40:00
2021-02-01 05:41:00 == 2021-02-01 08:41:00 == 2021-02-01 05:41:00
2021-02-12 06:42:00 == 2021-02-12 09:42:00 == 2021-02-12 06:42:00
2021-02-23 07:43:00 == 2021-02-23 10:43:00 == 2021-02-23 07:43:00
2021-03-06 08:44:00 == 2021-03-06 11:44:00 == 2021-03-06 08:44:00
2021-03-17 09:45:00 == 2021-03-17 12:45:00 == 2021-03-17 09:45:00
2021-03-28 10:46:00 == 2021-03-28 13:46:00 == 2021-03-28 10:46:00
2021-04-08 11:47:00 == 2021-04-08 14:47:00 == 2021-04-08 11:47:00
2021-04-19 00:48:00 == 2021-04-19 03:48:00 == 2021-04-19 00:48:00
2021-04-30 01:49:00 == 2021-04-30 04:49:00 == 2021-04-30 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2021-05-11 02:50:00 == 2021-05-11 05:50:00 == 2021-05-11 02:50:00
2021-05-22 03:51:00 == 2021-05-22 06:51:00 == 2021-05-22 03:51:00
2021-06-02 04:52:00 == 2021-06-02 07:52:00 == 2021-06-02 04:52:00
2021-06-13 05:53:00 == 2021-06-13 08:53:00 == 2021-06-13 05:53:00
2021-06-24 06:54:00 == 2021-06-24 09:54:00 == 2021-06-24 06:54:00
2021-07-05 07:55:00 == 2021-07-05 10:55:00 == 2021-07-05 07:55:00
2021-07-16 08:56:00 == 2021-07-16 11:56:00 == 2021-07-16 08:56:00
2021-07-27 09:57:00 == 2021-07-27 12:57:00 == 2021-07-27 09:57:00
2021-08-07 10:58:00 == 2021-08-07 13:58:00 == 2021-08-07 10:58:00
2021-08-18 11:59:00 == 2021-08-18 14:59:00 == 2021-08-18 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2021-08-29 00:00:00 == 2021-08-29 03:00:00 == 2021-08-29 00:00:00
2021-09-09 01:01:00 == 2021-09-09 04:01:00 == 2021-09-09 01:01:00
2021-09-20 02:02:00 == 2021-09-20 05:02:00 == 2021-09-20 02:02:00
2021-10-01 03:03:00 == 2021-10-01 07:03:00 == 2021-10-01 03:03:00
2021-10-12 04:04:00 == 2021-10-12 07:04:00 == 2021-10-12 04:04:00
2021-10-23 05:05:00 == 2021-10-23 08:05:00 == 2021-10-23 05:05:00
2021-11-03 06:06:00 == 2021-11-03 09:06:00 == 2021-11-03 06:06:00
2021-11-14 07:07:00 == 2021-11-14 10:07:00 == 2021-11-14 07:07:00
2021-11-25 08:08:00 == 2021-11-25 11:08:00 == 2021-11-25 08:08:00
2021-12-06 09:09:00 == 2021-12-06 12:09:00 == 2021-12-06 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2021-12-17 10:10:00 == 2021-12-17 13:10:00 == 2021-12-17 10:10:00
2021-12-28 11:11:00 == 2021-12-28 14:11:00 == 2021-12-28 11:11:00
2022-01-08 00:12:00 == 2022-01-08 03:12:00 == 2022-01-08 00:12:00
2022-01-19 01:13:00 == 2022-01-19 04:13:00 == 2022-01-19 01:13:00
2022-01-30 02:14:00 == 2022-01-30 05:14:00 == 2022-01-30 02:14:00
2022-02-10 03:15:00 == 2022-02-10 06:15:00 == 2022-02-10 03:15:00
2022-02-21 04:16:00 == 2022-02-21 07:16:00 == 2022-02-21 04:16:00
2022-03-04 05:17:00 == 2022-03-04 08:17:00 == 2022-03-04 05:17:00
2022-03-15 06:18:00 == 2022-03-15 09:18:00 == 2022-03-15 06:18:00
2022-03-26 07:19:00 == 2022-03-26 10:19:00 == 2022-03-26 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2022-04-06 08:20:00 == 2022-04-06 11:20:00 == 2022-04-06 08:20:00
2022-04-17 09:21:00 == 2022-04-17 12:21:00 == 2022-04-17 09:21:00
2022-04-28 10:22:00 == 2022-04-28 13:22:00 == 2022-04-28 10:22:00
2022-05-09 11:23:00 == 2022-05-09 14:23:00 == 2022-05-09 11:23:00
2022-05-20 00:24:00 == 2022-05-20 03:24:00 == 2022-05-20 00:24:00
2022-05-31 01:25:00 == 2022-05-31 04:25:00 == 2022-05-31 01:25:00
2022-06-11 02:26:00 == 2022-06-11 05:26:00 == 2022-06-11 02:26:00
2022-06-22 03:27:00 == 2022-06-22 06:27:00 == 2022-06-22 03:27:00
2022-07-03 04:28:00 == 2022-07-03 07:28:00 == 2022-07-03 04:28:00
2022-07-14 05:29:00 == 2022-07-14 08:29:00 == 2022-07-14 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2022-07-25 06:30:00 == 2022-07-25 09:30:00 == 2022-07-25 06:30:00
2022-08-05 07:31:00 == 2022-08-05 10:31:00 == 2022-08-05 07:31:00
2022-08-16 08:32:00 == 2022-08-16 11:32:00 == 2022-08-16 08:32:00
2022-08-27 09:33:00 == 2022-08-27 12:33:00 == 2022-08-27 09:33:00
2022-09-07 10:34:00 == 2022-09-07 13:34:00 == 2022-09-07 10:34:00
2022-09-18 11:35:00 == 2022-09-18 14:35:00 == 2022-09-18 11:35:00
2022-09-29 00:36:00 == 2022-09-29 04:36:00 == 2022-09-29 00:36:00
2022-10-10 01:37:00 == 2022-10-10 04:37:00 == 2022-10-10 01:37:00
2022-10-21 02:38:00 == 2022-10-21 05:38:00 == 2022-10-21 02:38:00
2022-11-01 03:39:00 == 2022-11-01 06:39:00 == 2022-11-01 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2022-11-12 04:40:00 == 2022-11-12 07:40:00 == 2022-11-12 04:40:00
2022-11-23 05:41:00 == 2022-11-23 08:41:00 == 2022-11-23 05:41:00
2022-12-04 06:42:00 == 2022-12-04 09:42:00 == 2022-12-04 06:42:00
2022-12-15 07:43:00 == 2022-12-15 10:43:00 == 2022-12-15 07:43:00
2022-12-26 08:44:00 == 2022-12-26 11:44:00 == 2022-12-26 08:44:00
2023-01-06 09:45:00 == 2023-01-06 12:45:00 == 2023-01-06 09:45:00
2023-01-17 10:46:00 == 2023-01-17 13:46:00 == 2023-01-17 10:46:00
2023-01-28 11:47:00 == 2023-01-28 14:47:00 == 2023-01-28 11:47:00
2023-02-08 00:48:00 == 2023-02-08 03:48:00 == 2023-02-08 00:48:00
2023-02-19 01:49:00 == 2023-02-19 04:49:00 == 2023-02-19 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2023-03-02 02:50:00 == 2023-03-02 05:50:00 == 2023-03-02 02:50:00
2023-03-13 03:51:00 == 2023-03-13 06:51:00 == 2023-03-13 03:51:00
2023-03-24 04:52:00 == 2023-03-24 07:52:00 == 2023-03-24 04:52:00
2023-04-04 05:53:00 == 2023-04-04 08:53:00 == 2023-04-04 05:53:00
2023-04-15 06:54:00 == 2023-04-15 09:54:00 == 2023-04-15 06:54:00
2023-04-26 07:55:00 == 2023-04-26 10:55:00 == 2023-04-26 07:55:00
2023-05-07 08:56:00 == 2023-05-07 11:56:00 == 2023-05-07 08:56:00
2023-05-18 09:57:00 == 2023-05-18 12:57:00 == 2023-05-18 09:57:00
2023-05-29 10:58:00 == 2023-05-29 13:58:00 == 2023-05-29 10:58:00
2023-06-09 11:59:00 == 2023-06-09 14:59:00 == 2023-06-09 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2023-06-20 00:00:00 == 2023-06-20 03:00:00 == 2023-06-20 00:00:00
2023-07-01 01:01:00 == 2023-07-01 04:01:00 == 2023-07-01 01:01:00
2023-07-12 02:02:00 == 2023-07-12 05:02:00 == 2023-07-12 02:02:00
2023-07-23 03:03:00 == 2023-07-23 06:03:00 == 2023-07-23 03:03:00
2023-08-03 04:04:00 == 2023-08-03 07:04:00 == 2023-08-03 04:04:00
2023-08-14 05:05:00 == 2023-08-14 08:05:00 == 2023-08-14 05:05:00
2023-08-25 06:06:00 == 2023-08-25 09:06:00 == 2023-08-25 06:06:00
2023-09-05 07:07:00 == 2023-09-05 10:07:00 == 2023-09-05 07:07:00
2023-09-16 08:08:00 == 2023-09-16 11:08:00 == 2023-09-16 08:08:00
2023-09-27 09:09:00 == 2023-09-27 13:09:00 == 2023-09-27 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2023-10-08 10:10:00 == 2023-10-08 13:10:00 == 2023-10-08 10:10:00
2023-10-19 11:11:00 == 2023-10-19 14:11:00 == 2023-10-19 11:11:00
2023-10-30 00:12:00 == 2023-10-30 03:12:00 == 2023-10-30 00:12:00
2023-11-10 01:13:00 == 2023-11-10 04:13:00 == 2023-11-10 01:13:00
2023-11-21 02:14:00 == 2023-11-21 05:14:00 == 2023-11-21 02:14:00
2023-12-02 03:15:00 == 2023-12-02 06:15:00 == 2023-12-02 03:15:00
2023-12-13 04:16:00 == 2023-12-13 07:16:00 == 2023-12-13 04:16:00
2023-12-24 05:17:00 == 2023-12-24 08:17:00 == 2023-12-24 05:17:00
2024-01-04 06:18:00 == 2024-01-04 09:18:00 == 2024-01-04 06:18:00
2024-01-15 07:19:00 == 2024-01-15 10:19:00 == 2024-01-15 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2024-01-26 08:20:00 == 2024-01-26 11:20:00 == 2024-01-26 08:20:00
2024-02-06 09:21:00 == 2024-02-06 12:21:00 == 2024-02-06 09:21:00
2024-02-17 10:22:00 == 2024-02-17 13:22:00 == 2024-02-17 10:22:00
2024-02-28 11:23:00 == 2024-02-28 14:23:00 == 2024-02-28 11:23:00
2024-03-10 00:24:00 == 2024-03-10 03:24:00 == 2024-03-10 00:24:00
2024-03-21 01:25:00 == 2024-03-21 04:25:00 == 2024-03-21 01:25:00
2024-04-01 02:26:00 == 2024-04-01 05:26:00 == 2024-04-01 02:26:00
2024-04-12 03:27:00 == 2024-04-12 06:27:00 == 2024-04-12 03:27:00
2024-04-23 04:28:00 == 2024-04-23 07:28:00 == 2024-04-23 04:28:00
2024-05-04 05:29:00 == 2024-05-04 08:29:00 == 2024-05-04 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2024-05-15 06:30:00 == 2024-05-15 09:30:00 == 2024-05-15 06:30:00
2024-05-26 07:31:00 == 2024-05-26 10:31:00 == 2024-05-26 07:31:00
2024-06-06 08:32:00 == 2024-06-06 11:32:00 == 2024-06-06 08:32:00
2024-06-17 09:33:00 == 2024-06-17 12:33:00 == 2024-06-17 09:33:00
2024-06-28 10:34:00 == 2024-06-28 13:34:00 == 2024-06-28 10:34:00
2024-07-09 11:35:00 == 2024-07-09 14:35:00 == 2024-07-09 11:35:00
2024-07-20 00:36:00 == 2024-07-20 03:36:00 == 2024-07-20 00:36:00
2024-07-31 01:37:00 == 2024-07-31 04:37:00 == 2024-07-31 01:37:00
2024-08-11 02:38:00 == 2024-08-11 05:38:00 == 2024-08-11 02:38:00
2024-08-22 03:39:00 == 2024-08-22 06:39:00 == 2024-08-22 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2024-09-02 04:40:00 == 2024-09-02 07:40:00 == 2024-09-02 04:40:00
2024-09-13 05:41:00 == 2024-09-13 08:41:00 == 2024-09-13 05:41:00
2024-09-24 06:42:00 == 2024-09-24 09:42:00 == 2024-09-24 06:42:00
2024-10-05 07:43:00 == 2024-10-05 11:43:00 == 2024-10-05 07:43:00
2024-10-16 08:44:00 == 2024-10-16 11:44:00 == 2024-10-16 08:44:00
2024-10-27 09:45:00 == 2024-10-27 12:45:00 == 2024-10-27 09:45:00
2024-11-07 10:46:00 == 2024-11-07 13:46:00 == 2024-11-07 10:46:00
2024-11-18 11:47:00 == 2024-11-18 14:47:00 == 2024-11-18 11:47:00
2024-11-29 00:48:00 == 2024-11-29 03:48:00 == 2024-11-29 00:48:00
2024-12-10 01:49:00 == 2024-12-10 04:49:00 == 2024-12-10 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2024-12-21 02:50:00 == 2024-12-21 05:50:00 == 2024-12-21 02:50:00
2025-01-01 03:51:00 == 2025-01-01 06:51:00 == 2025-01-01 03:51:00
2025-01-12 04:52:00 == 2025-01-12 07:52:00 == 2025-01-12 04:52:00
2025-01-23 05:53:00 == 2025-01-23 08:53:00 == 2025-01-23 05:53:00
2025-02-03 06:54:00 == 2025-02-03 09:54:00 == 2025-02-03 06:54:00
2025-02-14 07:55:00 == 2025-02-14 10:55:00 == 2025-02-14 07:55:00
2025-02-25 08:56:00 == 2025-02-25 11:56:00 == 2025-02-25 08:56:00
2025-03-08 09:57:00 == 2025-03-08 12:57:00 == 2025-03-08 09:57:00
2025-03-19 10:58:00 == 2025-03-19 13:58:00 == 2025-03-19 10:58:00
2025-03-30 11:59:00 == 2025-03-30 14:59:00 == 2025-03-30 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2025-04-10 00:00:00 == 2025-04-10 03:00:00 == 2025-04-10 00:00:00
2025-04-21 01:01:00 == 2025-04-21 04:01:00 == 2025-04-21 01:01:00
2025-05-02 02:02:00 == 2025-05-02 05:02:00 == 2025-05-02 02:02:00
2025-05-13 03:03:00 == 2025-05-13 06:03:00 == 2025-05-13 03:03:00
2025-05-24 04:04:00 == 2025-05-24 07:04:00 == 2025-05-24 04:04:00
2025-06-04 05:05:00 == 2025-06-04 08:05:00 == 2025-06-04 05:05:00
2025-06-15 06:06:00 == 2025-06-15 09:06:00 == 2025-06-15 06:06:00
2025-06-26 07:07:00 == 2025-06-26 10:07:00 == 2025-06-26 07:07:00
2025-07-07 08:08:00 == 2025-07-07 11:08:00 == 2025-07-07 08:08:00
2025-07-18 09:09:00 == 2025-07-18 12:09:00 == 2025-07-18 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2025-07-29 10:10:00 == 2025-07-29 13:10:00 == 2025-07-29 10:10:00
2025-08-09 11:11:00 == 2025-08-09 14:11:00 == 2025-08-09 11:11:00
2025-08-20 00:12:00 == 2025-08-20 03:12:00 == 2025-08-20 00:12:00
2025-08-31 01:13:00 == 2025-08-31 04:13:00 == 2025-08-31 01:13:00
2025-09-11 02:14:00 == 2025-09-11 05:14:00 == 2025-09-11 02:14:00
2025-09-22 03:15:00 == 2025-09-22 06:15:00 == 2025-09-22 03:15:00
2025-10-03 04:16:00 == 2025-10-03 08:16:00 == 2025-10-03 04:16:00
2025-10-14 05:17:00 == 2025-10-14 08:17:00 == 2025-10-14 05:17:00
2025-10-25 06:18:00 == 2025-10-25 09:18:00 == 2025-10-25 06:18:00
2025-11-05 07:19:00 == 2025-11-05 10:19:00 == 2025-11-05 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2025-11-16 08:20:00 == 2025-11-16 11:20:00 == 2025-11-16 08:20:00
2025-11-27 09:21:00 == 2025-11-27 12:21:00 == 2025-11-27 09:21:00
2025-12-08 10:22:00 == 2025-12-08 13:22:00 == 2025-12-08 10:22:00
2025-12-19 11:23:00 == 2025-12-19 14:23:00 == 2025-12-19 11:23:00
2025-12-30 00:24:00 == 2025-12-30 03:24:00 == 2025-12-30 00:24:00
2026-01-10 01:25:00 == 2026-01-10 04:25:00 == 2026-01-10 01:25:00
2026-01-21 02:26:00 == 2026-01-21 05:26:00 == 2026-01-21 02:26:00
2026-02-01 03:27:00 == 2026-02-01 06:27:00 == 2026-02-01 03:27:00
2026-02-12 04:28:00 == 2026-02-12 07:28:00 == 2026-02-12 04:28:00
2026-02-23 05:29:00 == 2026-02-23 08:29:00 == 2026-02-23 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2026-03-06 06:30:00 == 2026-03-06 09:30:00 == 2026-03-06 06:30:00
2026-03-17 07:31:00 == 2026-03-17 10:31:00 == 2026-03-17 07:31:00
2026-03-28 08:32:00 == 2026-03-28 11:32:00 == 2026-03-28 08:32:00
2026-04-08 09:33:00 == 2026-04-08 12:33:00 == 2026-04-08 09:33:00
2026-04-19 10:34:00 == 2026-04-19 13:34:00 == 2026-04-19 10:34:00
2026-04-30 11:35:00 == 2026-04-30 14:35:00 == 2026-04-30 11:35:00
2026-05-11 00:36:00 == 2026-05-11 03:36:00 == 2026-05-11 00:36:00
2026-05-22 01:37:00 == 2026-05-22 04:37:00 == 2026-05-22 01:37:00
2026-06-02 02:38:00 == 2026-06-02 05:38:00 == 2026-06-02 02:38:00
2026-06-13 03:39:00 == 2026-06-13 06:39:00 == 2026-06-13 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2026-06-24 04:40:00 == 2026-06-24 07:40:00 == 2026-06-24 04:40:00
2026-07-05 05:41:00 == 2026-07-05 08:41:00 == 2026-07-05 05:41:00
2026-07-16 06:42:00 == 2026-07-16 09:42:00 == 2026-07-16 06:42:00
2026-07-27 07:43:00 == 2026-07-27 10:43:00 == 2026-07-27 07:43:00
2026-08-07 08:44:00 == 2026-08-07 11:44:00 == 2026-08-07 08:44:00
2026-08-18 09:45:00 == 2026-08-18 12:45:00 == 2026-08-18 09:45:00
2026-08-29 10:46:00 == 2026-08-29 13:46:00 == 2026-08-29 10:46:00
2026-09-09 11:47:00 == 2026-09-09 14:47:00 == 2026-09-09 11:47:00
2026-09-20 00:48:00 == 2026-09-20 03:48:00 == 2026-09-20 00:48:00
2026-10-01 01:49:00 == 2026-10-01 05:49:00 == 2026-10-01 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2026-10-12 02:50:00 == 2026-10-12 05:50:00 == 2026-10-12 02:50:00
2026-10-23 03:51:00 == 2026-10-23 06:51:00 == 2026-10-23 03:51:00
2026-11-03 04:52:00 == 2026-11-03 07:52:00 == 2026-11-03 04:52:00
2026-11-14 05:53:00 == 2026-11-14 08:53:00 == 2026-11-14 05:53:00
2026-11-25 06:54:00 == 2026-11-25 09:54:00 == 2026-11-25 06:54:00
2026-12-06 07:55:00 == 2026-12-06 10:55:00 == 2026-12-06 07:55:00
2026-12-17 08:56:00 == 2026-12-17 11:56:00 == 2026-12-17 08:56:00
2026-12-28 09:57:00 == 2026-12-28 12:57:00 == 2026-12-28 09:57:00
2027-01-08 10:58:00 == 2027-01-08 13:58:00 == 2027-01-08 10:58:00
2027-01-19 11:59:00 == 2027-01-19 14:59:00 == 2027-01-19 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2027-01-30 00:00:00 == 2027-01-30 03:00:00 == 2027-01-30 00:00:00
2027-02-10 01:01:00 == 2027-02-10 04:01:00 == 2027-02-10 01:01:00
2027-02-21 02:02:00 == 2027-02-21 05:02:00 == 2027-02-21 02:02:00
2027-03-04 03:03:00 == 2027-03-04 06:03:00 == 2027-03-04 03:03:00
2027-03-15 04:04:00 == 2027-03-15 07:04:00 == 2027-03-15 04:04:00
2027-03-26 05:05:00 == 2027-03-26 08:05:00 == 2027-03-26 05:05:00
2027-04-06 06:06:00 == 2027-04-06 09:06:00 == 2027-04-06 06:06:00
2027-04-17 07:07:00 == 2027-04-17 10:07:00 == 2027-04-17 07:07:00
2027-04-28 08:08:00 == 2027-04-28 11:08:00 == 2027-04-28 08:08:00
2027-05-09 09:09:00 == 2027-05-09 12:09:00 == 2027-05-09 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2027-05-20 10:10:00 == 2027-05-20 13:10:00 == 2027-05-20 10:10:00
2027-05-31 11:11:00 == 2027-05-31 14:11:00 == 2027-05-31 11:11:00
2027-06-11 00:12:00 == 2027-06-11 03:12:00 == 2027-06-11 00:12:00
2027-06-22 01:13:00 == 2027-06-22 04:13:00 == 2027-06-22 01:13:00
2027-07-03 02:14:00 == 2027-07-03 05:14:00 == 2027-07-03 02:14:00
2027-07-14 03:15:00 == 2027-07-14 06:15:00 == 2027-07-14 03:15:00
2027-07-25 04:16:00 == 2027-07-25 07:16:00 == 2027-07-25 04:16:00
2027-08-05 05:17:00 == 2027-08-05 08:17:00 == 2027-08-05 05:17:00
2027-08-16 06:18:00 == 2027-08-16 09:18:00 == 2027-08-16 06:18:00
2027-08-27 07:19:00 == 2027-08-27 10:19:00 == 2027-08-27 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2027-09-07 08:20:00 == 2027-09-07 11:20:00 == 2027-09-07 08:20:00
2027-09-18 09:21:00 == 2027-09-18 12:21:00 == 2027-09-18 09:21:00
2027-09-29 10:22:00 == 2027-09-29 14:22:00 == 2027-09-29 10:22:00
2027-10-10 11:23:00 == 2027-10-10 14:23:00 == 2027-10-10 11:23:00
2027-10-21 00:24:00 == 2027-10-21 03:24:00 == 2027-10-21 00:24:00
2027-11-01 01:25:00 == 2027-11-01 04:25:00 == 2027-11-01 01:25:00
2027-11-12 02:26:00 == 2027-11-12 05:26:00 == 2027-11-12 02:26:00
2027-11-23 03:27:00 == 2027-11-23 06:27:00 == 2027-11-23 03:27:00
2027-12-04 04:28:00 == 2027-12-04 07:28:00 == 2027-12-04 04:28:00
2027-12-15 05:29:00 == 2027-12-15 08:29:00 == 2027-12-15 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2027-12-26 06:30:00 == 2027-12-26 09:30:00 == 2027-12-26 06:30:00
2028-01-06 07:31:00 == 2028-01-06 10:31:00 == 2028-01-06 07:31:00
2028-01-17 08:32:00 == 2028-01-17 11:32:00 == 2028-01-17 08:32:00
2028-01-28 09:33:00 == 2028-01-28 12:33:00 == 2028-01-28 09:33:00
2028-02-08 10:34:00 == 2028-02-08 13:34:00 == 2028-02-08 10:34:00
2028-02-19 11:35:00 == 2028-02-19 14:35:00 == 2028-02-19 11:35:00
2028-03-01 00:36:00 == 2028-03-01 03:36:00 == 2028-03-01 00:36:00
2028-03-12 01:37:00 == 2028-03-12 04:37:00 == 2028-03-12 01:37:00
2028-03-23 02:38:00 == 2028-03-23 05:38:00 == 2028-03-23 02:38:00
2028-04-03 03:39:00 == 2028-04-03 06:39:00 == 2028-04-03 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2028-04-14 04:40:00 == 2028-04-14 07:40:00 == 2028-04-14 04:40:00
2028-04-25 05:41:00 == 2028-04-25 08:41:00 == 2028-04-25 05:41:00
2028-05-06 06:42:00 == 2028-05-06 09:42:00 == 2028-05-06 06:42:00
2028-05-17 07:43:00 == 2028-05-17 10:43:00 == 2028-05-17 07:43:00
2028-05-28 08:44:00 == 2028-05-28 11:44:00 == 2028-05-28 08:44:00
2028-06-08 09:45:00 == 2028-06-08 12:45:00 == 2028-06-08 09:45:00
2028-06-19 10:46:00 == 2028-06-19 13:46:00 == 2028-06-19 10:46:00
2028-06-30 11:47:00 == 2028-06-30 14:47:00 == 2028-06-30 11:47:00
2028-07-11 00:48:00 == 2028-07-11 03:48:00 == 2028-07-11 00:48:00
2028-07-22 01:49:00 == 2028-07-22 04:49:00 == 2028-07-22 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2028-08-02 02:50:00 == 2028-08-02 05:50:00 == 2028-08-02 02:50:00
2028-08-13 03:51:00 == 2028-08-13 06:51:00 == 2028-08-13 03:51:00
2028-08-24 04:52:00 == 2028-08-24 07:52:00 == 2028-08-24 04:52:00
2028-09-04 05:53:00 == 2028-09-04 08:53:00 == 2028-09-04 05:53:00
2028-09-15 06:54:00 == 2028-09-15 09:54:00 == 2028-09-15 06:54:00
2028-09-26 07:55:00 == 2028-09-26 11:55:00 == 2028-09-26 07:55:00
2028-10-07 08:56:00 == 2028-10-07 11:56:00 == 2028-10-07 08:56:00
2028-10-18 09:57:00 == 2028-10-18 12:57:00 == 2028-10-18 09:57:00
2028-10-29 10:58:00 == 2028-10-29 13:58:00 == 2028-10-29 10:58:00
2028-11-09 11:59:00 == 2028-11-09 14:59:00 == 2028-11-09 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2028-11-20 00:00:00 == 2028-11-20 03:00:00 == 2028-11-20 00:00:00
2028-12-01 01:01:00 == 2028-12-01 04:01:00 == 2028-12-01 01:01:00
2028-12-12 02:02:00 == 2028-12-12 05:02:00 == 2028-12-12 02:02:00
2028-12-23 03:03:00 == 2028-12-23 06:03:00 == 2028-12-23 03:03:00
2029-01-03 04:04:00 == 2029-01-03 07:04:00 == 2029-01-03 04:04:00
2029-01-14 05:05:00 == 2029-01-14 08:05:00 == 2029-01-14 05:05:00
2029-01-25 06:06:00 == 2029-01-25 09:06:00 == 2029-01-25 06:06:00
2029-02-05 07:07:00 == 2029-02-05 10:07:00 == 2029-02-05 07:07:00
2029-02-16 08:08:00 == 2029-02-16 11:08:00 == 2029-02-16 08:08:00
2029-02-27 09:09:00 == 2029-02-27 12:09:00 == 2029-02-27 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2029-03-10 10:10:00 == 2029-03-10 13:10:00 == 2029-03-10 10:10:00
2029-03-21 11:11:00 == 2029-03-21 14:11:00 == 2029-03-21 11:11:00
2029-04-01 00:12:00 == 2029-04-01 03:12:00 == 2029-04-01 00:12:00
2029-04-12 01:13:00 == 2029-04-12 04:13:00 == 2029-04-12 01:13:00
2029-04-23 02:14:00 == 2029-04-23 05:14:00 == 2029-04-23 02:14:00
2029-05-04 03:15:00 == 2029-05-04 06:15:00 == 2029-05-04 03:15:00
2029-05-15 04:16:00 == 2029-05-15 07:16:00 == 2029-05-15 04:16:00
2029-05-26 05:17:00 == 2029-05-26 08:17:00 == 2029-05-26 05:17:00
2029-06-06 06:18:00 == 2029-06-06 09:18:00 == 2029-06-06 06:18:00
2029-06-17 07:19:00 == 2029-06-17 10:19:00 == 2029-06-17 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2029-06-28 08:20:00 == 2029-06-28 11:20:00 == 2029-06-28 08:20:00
2029-07-09 09:21:00 == 2029-07-09 12:21:00 == 2029-07-09 09:21:00
2029-07-20 10:22:00 == 2029-07-20 13:22:00 == 2029-07-20 10:22:00
2029-07-31 11:23:00 == 2029-07-31 14:23:00 == 2029-07-31 11:23:00
2029-08-11 00:24:00 == 2029-08-11 03:24:00 == 2029-08-11 00:24:00
2029-08-22 01:25:00 == 2029-08-22 04:25:00 == 2029-08-22 01:25:00
2029-09-02 02:26:00 == 2029-09-02 05:26:00 == 2029-09-02 02:26:00
2029-09-13 03:27:00 == 2029-09-13 06:27:00 == 2029-09-13 03:27:00
2029-09-24 04:28:00 == 2029-09-24 07:28:00 == 2029-09-24 04:28:00
2029-10-05 05:29:00 == 2029-10-05 09:29:00 == 2029-10-05 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2029-10-16 06:30:00 == 2029-10-16 09:30:00 == 2029-10-16 06:30:00
2029-10-27 07:31:00 == 2029-10-27 10:31:00 == 2029-10-27 07:31:00
2029-11-07 08:32:00 == 2029-11-07 11:32:00 == 2029-11-07 08:32:00
2029-11-18 09:33:00 == 2029-11-18 12:33:00 == 2029-11-18 09:33:00
2029-11-29 10:34:00 == 2029-11-29 13:34:00 == 2029-11-29 10:34:00
2029-12-10 11:35:00 == 2029-12-10 14:35:00 == 2029-12-10 11:35:00
2029-12-21 00:36:00 == 2029-12-21 03:36:00 == 2029-12-21 00:36:00
2030-01-01 01:37:00 == 2030-01-01 04:37:00 == 2030-01-01 01:37:00
2030-01-12 02:38:00 == 2030-01-12 05:38:00 == 2030-01-12 02:38:00
2030-01-23 03:39:00 == 2030-01-23 06:39:00 == 2030-01-23 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2030-02-03 04:40:00 == 2030-02-03 07:40:00 == 2030-02-03 04:40:00
2030-02-14 05:41:00 == 2030-02-14 08:41:00 == 2030-02-14 05:41:00
2030-02-25 06:42:00 == 2030-02-25 09:42:00 == 2030-02-25 06:42:00
2030-03-08 07:43:00 == 2030-03-08 10:43:00 == 2030-03-08 07:43:00
2030-03-19 08:44:00 == 2030-03-19 11:44:00 == 2030-03-19 08:44:00
2030-03-30 09:45:00 == 2030-03-30 12:45:00 == 2030-03-30 09:45:00
2030-04-10 10:46:00 == 2030-04-10 13:46:00 == 2030-04-10 10:46:00
2030-04-21 11:47:00 == 2030-04-21 14:47:00 == 2030-04-21 11:47:00
2030-05-02 00:48:00 == 2030-05-02 03:48:00 == 2030-05-02 00:48:00
2030-05-13 01:49:00 == 2030-05-13 04:49:00 == 2030-05-13 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2030-05-24 02:50:00 == 2030-05-24 05:50:00 == 2030-05-24 02:50:00
2030-06-04 03:51:00 == 2030-06-04 06:51:00 == 2030-06-04 03:51:00
2030-06-15 04:52:00 == 2030-06-15 07:52:00 == 2030-06-15 04:52:00
2030-06-26 05:53:00 == 2030-06-26 08:53:00 == 2030-06-26 05:53:00
2030-07-07 06:54:00 == 2030-07-07 09:54:00 == 2030-07-07 06:54:00
2030-07-18 07:55:00 == 2030-07-18 10:55:00 == 2030-07-18 07:55:00
2030-07-29 08:56:00 == 2030-07-29 11:56:00 == 2030-07-29 08:56:00
2030-08-09 09:57:00 == 2030-08-09 12:57:00 == 2030-08-09 09:57:00
2030-08-20 10:58:00 == 2030-08-20 13:58:00 == 2030-08-20 10:58:00
2030-08-31 11:59:00 == 2030-08-31 14:59:00 == 2030-08-31 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2030-09-11 00:00:00 == 2030-09-11 03:00:00 == 2030-09-11 00:00:00
2030-09-22 01:01:00 == 2030-09-22 04:01:00 == 2030-09-22 01:01:00
2030-10-03 02:02:00 == 2030-10-03 06:02:00 == 2030-10-03 02:02:00
2030-10-14 03:03:00 == 2030-10-14 06:03:00 == 2030-10-14 03:03:00
2030-10-25 04:04:00 == 2030-10-25 07:04:00 == 2030-10-25 04:04:00
2030-11-05 05:05:00 == 2030-11-05 08:05:00 == 2030-11-05 05:05:00
2030-11-16 06:06:00 == 2030-11-16 09:06:00 == 2030-11-16 06:06:00
2030-11-27 07:07:00 == 2030-11-27 10:07:00 == 2030-11-27 07:07:00
2030-12-08 08:08:00 == 2030-12-08 11:08:00 == 2030-12-08 08:08:00
2030-12-19 09:09:00 == 2030-12-19 12:09:00 == 2030-12-19 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2030-12-30 10:10:00 == 2030-12-30 13:10:00 == 2030-12-30 10:10:00
2031-01-10 11:11:00 == 2031-01-10 14:11:00 == 2031-01-10 11:11:00
2031-01-21 00:12:00 == 2031-01-21 03:12:00 == 2031-01-21 00:12:00
2031-02-01 01:13:00 == 2031-02-01 04:13:00 == 2031-02-01 01:13:00
2031-02-12 02:14:00 == 2031-02-12 05:14:00 == 2031-02-12 02:14:00
2031-02-23 03:15:00 == 2031-02-23 06:15:00 == 2031-02-23 03:15:00
2031-03-06 04:16:00 == 2031-03-06 07:16:00 == 2031-03-06 04:16:00
2031-03-17 05:17:00 == 2031-03-17 08:17:00 == 2031-03-17 05:17:00
2031-03-28 06:18:00 == 2031-03-28 09:18:00 == 2031-03-28 06:18:00
2031-04-08 07:19:00 == 2031-04-08 10:19:00 == 2031-04-08 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2031-04-19 08:20:00 == 2031-04-19 11:20:00 == 2031-04-19 08:20:00
2031-04-30 09:21:00 == 2031-04-30 12:21:00 == 2031-04-30 09:21:00
2031-05-11 10:22:00 == 2031-05-11 13:22:00 == 2031-05-11 10:22:00
2031-05-22 11:23:00 == 2031-05-22 14:23:00 == 2031-05-22 11:23:00
2031-06-02 00:24:00 == 2031-06-02 03:24:00 == 2031-06-02 00:24:00
2031-06-13 01:25:00 == 2031-06-13 04:25:00 == 2031-06-13 01:25:00
2031-06-24 02:26:00 == 2031-06-24 05:26:00 == 2031-06-24 02:26:00
2031-07-05 03:27:00 == 2031-07-05 06:27:00 == 2031-07-05 03:27:00
2031-07-16 04:28:00 == 2031-07-16 07:28:00 == 2031-07-16 04:28:00
2031-07-27 05:29:00 == 2031-07-27 08:29:00 == 2031-07-27 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2031-08-07 06:30:00 == 2031-08-07 09:30:00 == 2031-08-07 06:30:00
2031-08-18 07:31:00 == 2031-08-18 10:31:00 == 2031-08-18 07:31:00
2031-08-29 08:32:00 == 2031-08-29 11:32:00 == 2031-08-29 08:32:00
2031-09-09 09:33:00 == 2031-09-09 12:33:00 == 2031-09-09 09:33:00
2031-09-20 10:34:00 == 2031-09-20 13:34:00 == 2031-09-20 10:34:00
2031-10-01 11:35:00 == 2031-10-01 15:35:00 == 2031-10-01 11:35:00
2031-10-12 00:36:00 == 2031-10-12 03:36:00 == 2031-10-12 00:36:00
2031-10-23 01:37:00 == 2031-10-23 04:37:00 == 2031-10-23 01:37:00
2031-11-03 02:38:00 == 2031-11-03 05:38:00 == 2031-11-03 02:38:00
2031-11-14 03:39:00 == 2031-11-14 06:39:00 == 2031-11-14 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2031-11-25 04:40:00 == 2031-11-25 07:40:00 == 2031-11-25 04:40:00
2031-12-06 05:41:00 == 2031-12-06 08:41:00 == 2031-12-06 05:41:00
2031-12-17 06:42:00 == 2031-12-17 09:42:00 == 2031-12-17 06:42:00
2031-12-28 07:43:00 == 2031-12-28 10:43:00 == 2031-12-28 07:43:00
2032-01-08 08:44:00 == 2032-01-08 11:44:00 == 2032-01-08 08:44:00
2032-01-19 09:45:00 == 2032-01-19 12:45:00 == 2032-01-19 09:45:00
2032-01-30 10:46:00 == 2032-01-30 13:46:00 == 2032-01-30 10:46:00
2032-02-10 11:47:00 == 2032-02-10 14:47:00 == 2032-02-10 11:47:00
2032-02-21 00:48:00 == 2032-02-21 03:48:00 == 2032-02-21 00:48:00
2032-03-03 01:49:00 == 2032-03-03 04:49:00 == 2032-03-03 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2032-03-14 02:50:00 == 2032-03-14 05:50:00 == 2032-03-14 02:50:00
2032-03-25 03:51:00 == 2032-03-25 06:51:00 == 2032-03-25 03:51:00
2032-04-05 04:52:00 == 2032-04-05 07:52:00 == 2032-04-05 04:52:00
2032-04-16 05:53:00 == 2032-04-16 08:53:00 == 2032-04-16 05:53:00
2032-04-27 06:54:00 == 2032-04-27 09:54:00 == 2032-04-27 06:54:00
2032-05-08 07:55:00 == 2032-05-08 10:55:00 == 2032-05-08 07:55:00
2032-05-19 08:56:00 == 2032-05-19 11:56:00 == 2032-05-19 08:56:00
2032-05-30 09:57:00 == 2032-05-30 12:57:00 == 2032-05-30 09:57:00
2032-06-10 10:58:00 == 2032-06-10 13:58:00 == 2032-06-10 10:58:00
2032-06-21 11:59:00 == 2032-06-21 14:59:00 == 2032-06-21 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2032-07-02 00:00:00 == 2032-07-02 03:00:00 == 2032-07-02 00:00:00
2032-07-13 01:01:00 == 2032-07-13 04:01:00 == 2032-07-13 01:01:00
2032-07-24 02:02:00 == 2032-07-24 05:02:00 == 2032-07-24 02:02:00
2032-08-04 03:03:00 == 2032-08-04 06:03:00 == 2032-08-04 03:03:00
2032-08-15 04:04:00 == 2032-08-15 07:04:00 == 2032-08-15 04:04:00
2032-08-26 05:05:00 == 2032-08-26 08:05:00 == 2032-08-26 05:05:00
2032-09-06 06:06:00 == 2032-09-06 09:06:00 == 2032-09-06 06:06:00
2032-09-17 07:07:00 == 2032-09-17 10:07:00 == 2032-09-17 07:07:00
2032-09-28 08:08:00 == 2032-09-28 12:08:00 == 2032-09-28 08:08:00
2032-10-09 09:09:00 == 2032-10-09 12:09:00 == 2032-10-09 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2032-10-20 10:10:00 == 2032-10-20 13:10:00 == 2032-10-20 10:10:00
2032-10-31 11:11:00 == 2032-10-31 14:11:00 == 2032-10-31 11:11:00
2032-11-11 00:12:00 == 2032-11-11 03:12:00 == 2032-11-11 00:12:00
2032-11-22 01:13:00 == 2032-11-22 04:13:00 == 2032-11-22 01:13:00
2032-12-03 02:14:00 == 2032-12-03 05:14:00 == 2032-12-03 02:14:00
2032-12-14 03:15:00 == 2032-12-14 06:15:00 == 2032-12-14 03:15:00
2032-12-25 04:16:00 == 2032-12-25 07:16:00 == 2032-12-25 04:16:00
2033-01-05 05:17:00 == 2033-01-05 08:17:00 == 2033-01-05 05:17:00
2033-01-16 06:18:00 == 2033-01-16 09:18:00 == 2033-01-16 06:18:00
2033-01-27 07:19:00 == 2033-01-27 10:19:00 == 2033-01-27 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2033-02-07 08:20:00 == 2033-02-07 11:20:00 == 2033-02-07 08:20:00
2033-02-18 09:21:00 == 2033-02-18 12:21:00 == 2033-02-18 09:21:00
2033-03-01 10:22:00 == 2033-03-01 13:22:00 == 2033-03-01 10:22:00
2033-03-12 11:23:00 == 2033-03-12 14:23:00 == 2033-03-12 11:23:00
2033-03-23 00:24:00 == 2033-03-23 03:24:00 == 2033-03-23 00:24:00
2033-04-03 01:25:00 == 2033-04-03 04:25:00 == 2033-04-03 01:25:00
2033-04-14 02:26:00 == 2033-04-14 05:26:00 == 2033-04-14 02:26:00
2033-04-25 03:27:00 == 2033-04-25 06:27:00 == 2033-04-25 03:27:00
2033-05-06 04:28:00 == 2033-05-06 07:28:00 == 2033-05-06 04:28:00
2033-05-17 05:29:00 == 2033-05-17 08:29:00 == 2033-05-17 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2033-05-28 06:30:00 == 2033-05-28 09:30:00 == 2033-05-28 06:30:00
2033-06-08 07:31:00 == 2033-06-08 10:31:00 == 2033-06-08 07:31:00
2033-06-19 08:32:00 == 2033-06-19 11:32:00 == 2033-06-19 08:32:00
2033-06-30 09:33:00 == 2033-06-30 12:33:00 == 2033-06-30 09:33:00
2033-07-11 10:34:00 == 2033-07-11 13:34:00 == 2033-07-11 10:34:00
2033-07-22 11:35:00 == 2033-07-22 14:35:00 == 2033-07-22 11:35:00
2033-08-02 00:36:00 == 2033-08-02 03:36:00 == 2033-08-02 00:36:00
2033-08-13 01:37:00 == 2033-08-13 04:37:00 == 2033-08-13 01:37:00
2033-08-24 02:38:00 == 2033-08-24 05:38:00 == 2033-08-24 02:38:00
2033-09-04 03:39:00 == 2033-09-04 06:39:00 == 2033-09-04 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2033-09-15 04:40:00 == 2033-09-15 07:40:00 == 2033-09-15 04:40:00
2033-09-26 05:41:00 == 2033-09-26 09:41:00 == 2033-09-26 05:41:00
2033-10-07 06:42:00 == 2033-10-07 09:42:00 == 2033-10-07 06:42:00
2033-10-18 07:43:00 == 2033-10-18 10:43:00 == 2033-10-18 07:43:00
2033-10-29 08:44:00 == 2033-10-29 11:44:00 == 2033-10-29 08:44:00
2033-11-09 09:45:00 == 2033-11-09 12:45:00 == 2033-11-09 09:45:00
2033-11-20 10:46:00 == 2033-11-20 13:46:00 == 2033-11-20 10:46:00
2033-12-01 11:47:00 == 2033-12-01 14:47:00 == 2033-12-01 11:47:00
2033-12-12 00:48:00 == 2033-12-12 03:48:00 == 2033-12-12 00:48:00
2033-12-23 01:49:00 == 2033-12-23 04:49:00 == 2033-12-23 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2034-01-03 02:50:00 == 2034-01-03 05:50:00 == 2034-01-03 02:50:00
2034-01-14 03:51:00 == 2034-01-14 06:51:00 == 2034-01-14 03:51:00
2034-01-25 04:52:00 == 2034-01-25 07:52:00 == 2034-01-25 04:52:00
2034-02-05 05:53:00 == 2034-02-05 08:53:00 == 2034-02-05 05:53:00
2034-02-16 06:54:00 == 2034-02-16 09:54:00 == 2034-02-16 06:54:00
2034-02-27 07:55:00 == 2034-02-27 10:55:00 == 2034-02-27 07:55:00
2034-03-10 08:56:00 == 2034-03-10 11:56:00 == 2034-03-10 08:56:00
2034-03-21 09:57:00 == 2034-03-21 12:57:00 == 2034-03-21 09:57:00
2034-04-01 10:58:00 == 2034-04-01 13:58:00 == 2034-04-01 10:58:00
2034-04-12 11:59:00 == 2034-04-12 14:59:00 == 2034-04-12 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2034-04-23 00:00:00 == 2034-04-23 03:00:00 == 2034-04-23 00:00:00
2034-05-04 01:01:00 == 2034-05-04 04:01:00 == 2034-05-04 01:01:00
2034-05-15 02:02:00 == 2034-05-15 05:02:00 == 2034-05-15 02:02:00
2034-05-26 03:03:00 == 2034-05-26 06:03:00 == 2034-05-26 03:03:00
2034-06-06 04:04:00 == 2034-06-06 07:04:00 == 2034-06-06 04:04:00
2034-06-17 05:05:00 == 2034-06-17 08:05:00 == 2034-06-17 05:05:00
2034-06-28 06:06:00 == 2034-06-28 09:06:00 == 2034-06-28 06:06:00
2034-07-09 07:07:00 == 2034-07-09 10:07:00 == 2034-07-09 07:07:00
2034-07-20 08:08:00 == 2034-07-20 11:08:00 == 2034-07-20 08:08:00
2034-07-31 09:09:00 == 2034-07-31 12:09:00 == 2034-07-31 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2034-08-11 10:10:00 == 2034-08-11 13:10:00 == 2034-08-11 10:10:00
2034-08-22 11:11:00 == 2034-08-22 14:11:00 == 2034-08-22 11:11:00
2034-09-02 00:12:00 == 2034-09-02 03:12:00 == 2034-09-02 00:12:00
2034-09-13 01:13:00 == 2034-09-13 04:13:00 == 2034-09-13 01:13:00
2034-09-24 02:14:00 == 2034-09-24 06:14:00 == 2034-09-24 02:14:00
2034-10-05 03:15:00 == 2034-10-05 06:15:00 == 2034-10-05 03:15:00
2034-10-16 04:16:00 == 2034-10-16 07:16:00 == 2034-10-16 04:16:00
2034-10-27 05:17:00 == 2034-10-27 08:17:00 == 2034-10-27 05:17:00
2034-11-07 06:18:00 == 2034-11-07 09:18:00 == 2034-11-07 06:18:00
2034-11-18 07:19:00 == 2034-11-18 10:19:00 == 2034-11-18 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2034-11-29 08:20:00 == 2034-11-29 11:20:00 == 2034-11-29 08:20:00
2034-12-10 09:21:00 == 2034-12-10 12:21:00 == 2034-12-10 09:21:00
2034-12-21 10:22:00 == 2034-12-21 13:22:00 == 2034-12-21 10:22:00
2035-01-01 11:23:00 == 2035-01-01 14:23:00 == 2035-01-01 11:23:00
2035-01-12 00:24:00 == 2035-01-12 03:24:00 == 2035-01-12 00:24:00
2035-01-23 01:25:00 == 2035-01-23 04:25:00 == 2035-01-23 01:25:00
2035-02-03 02:26:00 == 2035-02-03 05:26:00 == 2035-02-03 02:26:00
2035-02-14 03:27:00 == 2035-02-14 06:27:00 == 2035-02-14 03:27:00
2035-02-25 04:28:00 == 2035-02-25 07:28:00 == 2035-02-25 04:28:00
2035-03-08 05:29:00 == 2035-03-08 08:29:00 == 2035-03-08 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2035-03-19 06:30:00 == 2035-03-19 09:30:00 == 2035-03-19 06:30:00
2035-03-30 07:31:00 == 2035-03-30 10:31:00 == 2035-03-30 07:31:00
2035-04-10 08:32:00 == 2035-04-10 11:32:00 == 2035-04-10 08:32:00
2035-04-21 09:33:00 == 2035-04-21 12:33:00 == 2035-04-21 09:33:00
2035-05-02 10:34:00 == 2035-05-02 13:34:00 == 2035-05-02 10:34:00
2035-05-13 11:35:00 == 2035-05-13 14:35:00 == 2035-05-13 11:35:00
2035-05-24 00:36:00 == 2035-05-24 03:36:00 == 2035-05-24 00:36:00
2035-06-04 01:37:00 == 2035-06-04 04:37:00 == 2035-06-04 01:37:00
2035-06-15 02:38:00 == 2035-06-15 05:38:00 == 2035-06-15 02:38:00
2035-06-26 03:39:00 == 2035-06-26 06:39:00 == 2035-06-26 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2035-07-07 04:40:00 == 2035-07-07 07:40:00 == 2035-07-07 04:40:00
2035-07-18 05:41:00 == 2035-07-18 08:41:00 == 2035-07-18 05:41:00
2035-07-29 06:42:00 == 2035-07-29 09:42:00 == 2035-07-29 06:42:00
2035-08-09 07:43:00 == 2035-08-09 10:43:00 == 2035-08-09 07:43:00
2035-08-20 08:44:00 == 2035-08-20 11:44:00 == 2035-08-20 08:44:00
2035-08-31 09:45:00 == 2035-08-31 12:45:00 == 2035-08-31 09:45:00
2035-09-11 10:46:00 == 2035-09-11 13:46:00 == 2035-09-11 10:46:00
2035-09-22 11:47:00 == 2035-09-22 14:47:00 == 2035-09-22 11:47:00
2035-10-03 00:48:00 == 2035-10-03 04:48:00 == 2035-10-03 00:48:00
2035-10-14 01:49:00 == 2035-10-14 04:49:00 == 2035-10-14 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2035-10-25 02:50:00 == 2035-10-25 05:50:00 == 2035-10-25 02:50:00
2035-11-05 03:51:00 == 2035-11-05 06:51:00 == 2035-11-05 03:51:00
2035-11-16 04:52:00 == 2035-11-16 07:52:00 == 2035-11-16 04:52:00
2035-11-27 05:53:00 == 2035-11-27 08:53:00 == 2035-11-27 05:53:00
2035-12-08 06:54:00 == 2035-12-08 09:54:00 == 2035-12-08 06:54:00
2035-12-19 07:55:00 == 2035-12-19 10:55:00 == 2035-12-19 07:55:00
2035-12-30 08:56:00 == 2035-12-30 11:56:00 == 2035-12-30 08:56:00
2036-01-10 09:57:00 == 2036-01-10 12:57:00 == 2036-01-10 09:57:00
2036-01-21 10:58:00 == 2036-01-21 13:58:00 == 2036-01-21 10:58:00
2036-02-01 11:59:00 == 2036-02-01 14:59:00 == 2036-02-01 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2036-02-12 00:00:00 == 2036-02-12 03:00:00 == 2036-02-12 00:00:00
2036-02-23 01:01:00 == 2036-02-23 04:01:00 == 2036-02-23 01:01:00
2036-03-05 02:02:00 == 2036-03-05 05:02:00 == 2036-03-05 02:02:00
2036-03-16 03:03:00 == 2036-03-16 06:03:00 == 2036-03-16 03:03:00
2036-03-27 04:04:00 == 2036-03-27 07:04:00 == 2036-03-27 04:04:00
2036-04-07 05:05:00 == 2036-04-07 08:05:00 == 2036-04-07 05:05:00
2036-04-18 06:06:00 == 2036-04-18 09:06:00 == 2036-04-18 06:06:00
2036-04-29 07:07:00 == 2036-04-29 10:07:00 == 2036-04-29 07:07:00
2036-05-10 08:08:00 == 2036-05-10 11:08:00 == 2036-05-10 08:08:00
2036-05-21 09:09:00 == 2036-05-21 12:09:00 == 2036-05-21 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2036-06-01 10:10:00 == 2036-06-01 13:10:00 == 2036-06-01 10:10:00
2036-06-12 11:11:00 == 2036-06-12 14:11:00 == 2036-06-12 11:11:00
2036-06-23 00:12:00 == 2036-06-23 03:12:00 == 2036-06-23 00:12:00
2036-07-04 01:13:00 == 2036-07-04 04:13:00 == 2036-07-04 01:13:00
2036-07-15 02:14:00 == 2036-07-15 05:14:00 == 2036-07-15 02:14:00
2036-07-26 03:15:00 == 2036-07-26 06:15:00 == 2036-07-26 03:15:00
2036-08-06 04:16:00 == 2036-08-06 07:16:00 == 2036-08-06 04:16:00
2036-08-17 05:17:00 == 2036-08-17 08:17:00 == 2036-08-17 05:17:00
2036-08-28 06:18:00 == 2036-08-28 09:18:00 == 2036-08-28 06:18:00
2036-09-08 07:19:00 == 2036-09-08 10:19:00 == 2036-09-08 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2036-09-19 08:20:00 == 2036-09-19 11:20:00 == 2036-09-19 08:20:00
2036-09-30 09:21:00 == 2036-09-30 13:21:00 == 2036-09-30 09:21:00
2036-10-11 10:22:00 == 2036-10-11 13:22:00 == 2036-10-11 10:22:00
2036-10-22 11:23:00 == 2036-10-22 14:23:00 == 2036-10-22 11:23:00
2036-11-02 00:24:00 == 2036-11-02 03:24:00 == 2036-11-02 00:24:00
2036-11-13 01:25:00 == 2036-11-13 04:25:00 == 2036-11-13 01:25:00
2036-11-24 02:26:00 == 2036-11-24 05:26:00 == 2036-11-24 02:26:00
2036-12-05 03:27:00 == 2036-12-05 06:27:00 == 2036-12-05 03:27:00
2036-12-16 04:28:00 == 2036-12-16 07:28:00 == 2036-12-16 04:28:00
2036-12-27 05:29:00 == 2036-12-27 08:29:00 == 2036-12-27 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2037-01-07 06:30:00 == 2037-01-07 09:30:00 == 2037-01-07 06:30:00
2037-01-18 07:31:00 == 2037-01-18 10:31:00 == 2037-01-18 07:31:00
2037-01-29 08:32:00 == 2037-01-29 11:32:00 == 2037-01-29 08:32:00
2037-02-09 09:33:00 == 2037-02-09 12:33:00 == 2037-02-09 09:33:00
2037-02-20 10:34:00 == 2037-02-20 13:34:00 == 2037-02-20 10:34:00
2037-03-03 11:35:00 == 2037-03-03 14:35:00 == 2037-03-03 11:35:00
2037-03-14 00:36:00 == 2037-03-14 03:36:00 == 2037-03-14 00:36:00
2037-03-25 01:37:00 == 2037-03-25 04:37:00 == 2037-03-25 01:37:00
2037-04-05 02:38:00 == 2037-04-05 05:38:00 == 2037-04-05 02:38:00
2037-04-16 03:39:00 == 2037-04-16 06:39:00 == 2037-04-16 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2037-04-27 04:40:00 == 2037-04-27 07:40:00 == 2037-04-27 04:40:00
2037-05-08 05:41:00 == 2037-05-08 08:41:00 == 2037-05-08 05:41:00
2037-05-19 06:42:00 == 2037-05-19 09:42:00 == 2037-05-19 06:42:00
2037-05-30 07:43:00 == 2037-05-30 10:43:00 == 2037-05-30 07:43:00
2037-06-10 08:44:00 == 2037-06-10 11:44:00 == 2037-06-10 08:44:00
2037-06-21 09:45:00 == 2037-06-21 12:45:00 == 2037-06-21 09:45:00
2037-07-02 10:46:00 == 2037-07-02 13:46:00 == 2037-07-02 10:46:00
2037-07-13 11:47:00 == 2037-07-13 14:47:00 == 2037-07-13 11:47:00
2037-07-24 00:48:00 == 2037-07-24 03:48:00 == 2037-07-24 00:48:00
2037-08-04 01:49:00 == 2037-08-04 04:49:00 == 2037-08-04 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2037-08-15 02:50:00 == 2037-08-15 05:50:00 == 2037-08-15 02:50:00
2037-08-26 03:51:00 == 2037-08-26 06:51:00 == 2037-08-26 03:51:00
2037-09-06 04:52:00 == 2037-09-06 07:52:00 == 2037-09-06 04:52:00
2037-09-17 05:53:00 == 2037-09-17 08:53:00 == 2037-09-17 05:53:00
2037-09-28 06:54:00 == 2037-09-28 10:54:00 == 2037-09-28 06:54:00
2037-10-09 07:55:00 == 2037-10-09 10:55:00 == 2037-10-09 07:55:00
2037-10-20 08:56:00 == 2037-10-20 11:56:00 == 2037-10-20 08:56:00
2037-10-31 09:57:00 == 2037-10-31 12:57:00 == 2037-10-31 09:57:00
2037-11-11 10:58:00 == 2037-11-11 13:58:00 == 2037-11-11 10:58:00
2037-11-22 11:59:00 == 2037-11-22 14:59:00 == 2037-11-22 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2037-12-03 00:00:00 == 2037-12-03 03:00:00 == 2037-12-03 00:00:00
2037-12-14 01:01:00 == 2037-12-14 04:01:00 == 2037-12-14 01:01:00
2037-12-25 02:02:00 == 2037-12-25 05:02:00 == 2037-12-25 02:02:00
2038-01-05 03:03:00 == 2038-01-05 06:03:00 == 2038-01-05 03:03:00
2038-01-16 04:04:00 == 2038-01-16 07:04:00 == 2038-01-16 04:04:00
2038-01-27 05:05:00 == 2038-01-27 08:05:00 == 2038-01-27 05:05:00
2038-02-07 06:06:00 == 2038-02-07 09:06:00 == 2038-02-07 06:06:00
2038-02-18 07:07:00 == 2038-02-18 10:07:00 == 2038-02-18 07:07:00
2038-03-01 08:08:00 == 2038-03-01 11:08:00 == 2038-03-01 08:08:00
2038-03-12 09:09:00 == 2038-03-12 12:09:00 == 2038-03-12 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2038-03-23 10:10:00 == 2038-03-23 13:10:00 == 2038-03-23 10:10:00
2038-04-03 11:11:00 == 2038-04-03 14:11:00 == 2038-04-03 11:11:00
2038-04-14 00:12:00 == 2038-04-14 03:12:00 == 2038-04-14 00:12:00
2038-04-25 01:13:00 == 2038-04-25 04:13:00 == 2038-04-25 01:13:00
2038-05-06 02:14:00 == 2038-05-06 05:14:00 == 2038-05-06 02:14:00
2038-05-17 03:15:00 == 2038-05-17 06:15:00 == 2038-05-17 03:15:00
2038-05-28 04:16:00 == 2038-05-28 07:16:00 == 2038-05-28 04:16:00
2038-06-08 05:17:00 == 2038-06-08 08:17:00 == 2038-06-08 05:17:00
2038-06-19 06:18:00 == 2038-06-19 09:18:00 == 2038-06-19 06:18:00
2038-06-30 07:19:00 == 2038-06-30 10:19:00 == 2038-06-30 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2038-07-11 08:20:00 == 2038-07-11 11:20:00 == 2038-07-11 08:20:00
2038-07-22 09:21:00 == 2038-07-22 12:21:00 == 2038-07-22 09:21:00
2038-08-02 10:22:00 == 2038-08-02 13:22:00 == 2038-08-02 10:22:00
2038-08-13 11:23:00 == 2038-08-13 14:23:00 == 2038-08-13 11:23:00
2038-08-24 00:24:00 == 2038-08-24 03:24:00 == 2038-08-24 00:24:00
2038-09-04 01:25:00 == 2038-09-04 04:25:00 == 2038-09-04 01:25:00
2038-09-15 02:26:00 == 2038-09-15 05:26:00 == 2038-09-15 02:26:00
2038-09-26 03:27:00 == 2038-09-26 07:27:00 == 2038-09-26 03:27:00
2038-10-07 04:28:00 == 2038-10-07 07:28:00 == 2038-10-07 04:28:00
2038-10-18 05:29:00 == 2038-10-18 08:29:00 == 2038-10-18 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2038-10-29 06:30:00 == 2038-10-29 09:30:00 == 2038-10-29 06:30:00
2038-11-09 07:31:00 == 2038-11-09 10:31:00 == 2038-11-09 07:31:00
2038-11-20 08:32:00 == 2038-11-20 11:32:00 == 2038-11-20 08:32:00
2038-12-01 09:33:00 == 2038-12-01 12:33:00 == 2038-12-01 09:33:00
2038-12-12 10:34:00 == 2038-12-12 13:34:00 == 2038-12-12 10:34:00
2038-12-23 11:35:00 == 2038-12-23 14:35:00 == 2038-12-23 11:35:00
2039-01-03 00:36:00 == 2039-01-03 03:36:00 == 2039-01-03 00:36:00
2039-01-14 01:37:00 == 2039-01-14 04:37:00 == 2039-01-14 01:37:00
2039-01-25 02:38:00 == 2039-01-25 05:38:00 == 2039-01-25 02:38:00
2039-02-05 03:39:00 == 2039-02-05 06:39:00 == 2039-02-05 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2039-02-16 04:40:00 == 2039-02-16 07:40:00 == 2039-02-16 04:40:00
2039-02-27 05:41:00 == 2039-02-27 08:41:00 == 2039-02-27 05:41:00
2039-03-10 06:42:00 == 2039-03-10 09:42:00 == 2039-03-10 06:42:00
2039-03-21 07:43:00 == 2039-03-21 10:43:00 == 2039-03-21 07:43:00
2039-04-01 08:44:00 == 2039-04-01 11:44:00 == 2039-04-01 08:44:00
2039-04-12 09:45:00 == 2039-04-12 12:45:00 == 2039-04-12 09:45:00
2039-04-23 10:46:00 == 2039-04-23 13:46:00 == 2039-04-23 10:46:00
2039-05-04 11:47:00 == 2039-05-04 14:47:00 == 2039-05-04 11:47:00
2039-05-15 00:48:00 == 2039-05-15 03:48:00 == 2039-05-15 00:48:00
2039-05-26 01:49:00 == 2039-05-26 04:49:00 == 2039-05-26 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2039-06-06 02:50:00 == 2039-06-06 05:50:00 == 2039-06-06 02:50:00
2039-06-17 03:51:00 == 2039-06-17 06:51:00 == 2039-06-17 03:51:00
2039-06-28 04:52:00 == 2039-06-28 07:52:00 == 2039-06-28 04:52:00
2039-07-09 05:53:00 == 2039-07-09 08:53:00 == 2039-07-09 05:53:00
2039-07-20 06:54:00 == 2039-07-20 09:54:00 == 2039-07-20 06:54:00
2039-07-31 07:55:00 == 2039-07-31 10:55:00 == 2039-07-31 07:55:00
2039-08-11 08:56:00 == 2039-08-11 11:56:00 == 2039-08-11 08:56:00
2039-08-22 09:57:00 == 2039-08-22 12:57:00 == 2039-08-22 09:57:00
2039-09-02 10:58:00 == 2039-09-02 13:58:00 == 2039-09-02 10:58:00
2039-09-13 11:59:00 == 2039-09-13 14:59:00 == 2039-09-13 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2039-09-24 00:00:00 == 2039-09-24 03:00:00 == 2039-09-24 00:00:00
2039-10-05 01:01:00 == 2039-10-05 04:01:00 == 2039-10-05 01:01:00
2039-10-16 02:02:00 == 2039-10-16 05:02:00 == 2039-10-16 02:02:00
2039-10-27 03:03:00 == 2039-10-27 06:03:00 == 2039-10-27 03:03:00
2039-11-07 04:04:00 == 2039-11-07 07:04:00 == 2039-11-07 04:04:00
2039-11-18 05:05:00 == 2039-11-18 08:05:00 == 2039-11-18 05:05:00
2039-11-29 06:06:00 == 2039-11-29 09:06:00 == 2039-11-29 06:06:00
2039-12-10 07:07:00 == 2039-12-10 10:07:00 == 2039-12-10 07:07:00
2039-12-21 08:08:00 == 2039-12-21 11:08:00 == 2039-12-21 08:08:00
2040-01-01 09:09:00 == 2040-01-01 12:09:00 == 2040-01-01 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2040-01-12 10:10:00 == 2040-01-12 13:10:00 == 2040-01-12 10:10:00
2040-01-23 11:11:00 == 2040-01-23 14:11:00 == 2040-01-23 11:11:00
2040-02-03 00:12:00 == 2040-02-03 03:12:00 == 2040-02-03 00:12:00
2040-02-14 01:13:00 == 2040-02-14 04:13:00 == 2040-02-14 01:13:00
2040-02-25 02:14:00 == 2040-02-25 05:14:00 == 2040-02-25 02:14:00
2040-03-07 03:15:00 == 2040-03-07 06:15:00 == 2040-03-07 03:15:00
2040-03-18 04:16:00 == 2040-03-18 07:16:00 == 2040-03-18 04:16:00
2040-03-29 05:17:00 == 2040-03-29 08:17:00 == 2040-03-29 05:17:00
2040-04-09 06:18:00 == 2040-04-09 09:18:00 == 2040-04-09 06:18:00
2040-04-20 07:19:00 == 2040-04-20 10:19:00 == 2040-04-20 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2040-05-01 08:20:00 == 2040-05-01 11:20:00 == 2040-05-01 08:20:00
2040-05-12 09:21:00 == 2040-05-12 12:21:00 == 2040-05-12 09:21:00
2040-05-23 10:22:00 == 2040-05-23 13:22:00 == 2040-05-23 10:22:00
2040-06-03 11:23:00 == 2040-06-03 14:23:00 == 2040-06-03 11:23:00
2040-06-14 00:24:00 == 2040-06-14 03:24:00 == 2040-06-14 00:24:00
2040-06-25 01:25:00 == 2040-06-25 04:25:00 == 2040-06-25 01:25:00
2040-07-06 02:26:00 == 2040-07-06 05:26:00 == 2040-07-06 02:26:00
2040-07-17 03:27:00 == 2040-07-17 06:27:00 == 2040-07-17 03:27:00
2040-07-28 04:28:00 == 2040-07-28 07:28:00 == 2040-07-28 04:28:00
2040-08-08 05:29:00 == 2040-08-08 08:29:00 == 2040-08-08 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2040-08-19 06:30:00 == 2040-08-19 09:30:00 == 2040-08-19 06:30:00
2040-08-30 07:31:00 == 2040-08-30 10:31:00 == 2040-08-30 07:31:00
2040-09-10 08:32:00 == 2040-09-10 11:32:00 == 2040-09-10 08:32:00
2040-09-21 09:33:00 == 2040-09-21 12:33:00 == 2040-09-21 09:33:00
2040-10-02 10:34:00 == 2040-10-02 14:34:00 == 2040-10-02 10:34:00
2040-10-13 11:35:00 == 2040-10-13 14:35:00 == 2040-10-13 11:35:00
2040-10-24 00:36:00 == 2040-10-24 03:36:00 == 2040-10-24 00:36:00
2040-11-04 01:37:00 == 2040-11-04 04:37:00 == 2040-11-04 01:37:00
2040-11-15 02:38:00 == 2040-11-15 05:38:00 == 2040-11-15 02:38:00
2040-11-26 03:39:00 == 2040-11-26 06:39:00 == 2040-11-26 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2040-12-07 04:40:00 == 2040-12-07 07:40:00 == 2040-12-07 04:40:00
2040-12-18 05:41:00 == 2040-12-18 08:41:00 == 2040-12-18 05:41:00
2040-12-29 06:42:00 == 2040-12-29 09:42:00 == 2040-12-29 06:42:00
2041-01-09 07:43:00 == 2041-01-09 10:43:00 == 2041-01-09 07:43:00
2041-01-20 08:44:00 == 2041-01-20 11:44:00 == 2041-01-20 08:44:00
2041-01-31 09:45:00 == 2041-01-31 12:45:00 == 2041-01-31 09:45:00
2041-02-11 10:46:00 == 2041-02-11 13:46:00 == 2041-02-11 10:46:00
2041-02-22 11:47:00 == 2041-02-22 14:47:00 == 2041-02-22 11:47:00
2041-03-05 00:48:00 == 2041-03-05 03:48:00 == 2041-03-05 00:48:00
2041-03-16 01:49:00 == 2041-03-16 04:49:00 == 2041-03-16 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2041-03-27 02:50:00 == 2041-03-27 05:50:00 == 2041-03-27 02:50:00
2041-04-07 03:51:00 == 2041-04-07 06:51:00 == 2041-04-07 03:51:00
2041-04-18 04:52:00 == 2041-04-18 07:52:00 == 2041-04-18 04:52:00
2041-04-29 05:53:00 == 2041-04-29 08:53:00 == 2041-04-29 05:53:00
2041-05-10 06:54:00 == 2041-05-10 09:54:00 == 2041-05-10 06:54:00
2041-05-21 07:55:00 == 2041-05-21 10:55:00 == 2041-05-21 07:55:00
2041-06-01 08:56:00 == 2041-06-01 11:56:00 == 2041-06-01 08:56:00
2041-06-12 09:57:00 == 2041-06-12 12:57:00 == 2041-06-12 09:57:00
2041-06-23 10:58:00 == 2041-06-23 13:58:00 == 2041-06-23 10:58:00
2041-07-04 11:59:00 == 2041-07-04 14:59:00 == 2041-07-04 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2041-07-15 00:00:00 == 2041-07-15 03:00:00 == 2041-07-15 00:00:00
2041-07-26 01:01:00 == 2041-07-26 04:01:00 == 2041-07-26 01:01:00
2041-08-06 02:02:00 == 2041-08-06 05:02:00 == 2041-08-06 02:02:00
2041-08-17 03:03:00 == 2041-08-17 06:03:00 == 2041-08-17 03:03:00
2041-08-28 04:04:00 == 2041-08-28 07:04:00 == 2041-08-28 04:04:00
2041-09-08 05:05:00 == 2041-09-08 08:05:00 == 2041-09-08 05:05:00
2041-09-19 06:06:00 == 2041-09-19 09:06:00 == 2041-09-19 06:06:00
2041-09-30 07:07:00 == 2041-09-30 11:07:00 == 2041-09-30 07:07:00
2041-10-11 08:08:00 == 2041-10-11 11:08:00 == 2041-10-11 08:08:00
2041-10-22 09:09:00 == 2041-10-22 12:09:00 == 2041-10-22 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2041-11-02 10:10:00 == 2041-11-02 13:10:00 == 2041-11-02 10:10:00
2041-11-13 11:11:00 == 2041-11-13 14:11:00 == 2041-11-13 11:11:00
2041-11-24 00:12:00 == 2041-11-24 03:12:00 == 2041-11-24 00:12:00
2041-12-05 01:13:00 == 2041-12-05 04:13:00 == 2041-12-05 01:13:00
2041-12-16 02:14:00 == 2041-12-16 05:14:00 == 2041-12-16 02:14:00
2041-12-27 03:15:00 == 2041-12-27 06:15:00 == 2041-12-27 03:15:00
2042-01-07 04:16:00 == 2042-01-07 07:16:00 == 2042-01-07 04:16:00
2042-01-18 05:17:00 == 2042-01-18 08:17:00 == 2042-01-18 05:17:00
2042-01-29 06:18:00 == 2042-01-29 09:18:00 == 2042-01-29 06:18:00
2042-02-09 07:19:00 == 2042-02-09 10:19:00 == 2042-02-09 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2042-02-20 08:20:00 == 2042-02-20 11:20:00 == 2042-02-20 08:20:00
2042-03-03 09:21:00 == 2042-03-03 12:21:00 == 2042-03-03 09:21:00
2042-03-14 10:22:00 == 2042-03-14 13:22:00 == 2042-03-14 10:22:00
2042-03-25 11:23:00 == 2042-03-25 14:23:00 == 2042-03-25 11:23:00
2042-04-05 00:24:00 == 2042-04-05 03:24:00 == 2042-04-05 00:24:00
2042-04-16 01:25:00 == 2042-04-16 04:25:00 == 2042-04-16 01:25:00
2042-04-27 02:26:00 == 2042-04-27 05:26:00 == 2042-04-27 02:26:00
2042-05-08 03:27:00 == 2042-05-08 06:27:00 == 2042-05-08 03:27:00
2042-05-19 04:28:00 == 2042-05-19 07:28:00 == 2042-05-19 04:28:00
2042-05-30 05:29:00 == 2042-05-30 08:29:00 == 2042-05-30 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2042-06-10 06:30:00 == 2042-06-10 09:30:00 == 2042-06-10 06:30:00
2042-06-21 07:31:00 == 2042-06-21 10:31:00 == 2042-06-21 07:31:00
2042-07-02 08:32:00 == 2042-07-02 11:32:00 == 2042-07-02 08:32:00
2042-07-13 09:33:00 == 2042-07-13 12:33:00 == 2042-07-13 09:33:00
2042-07-24 10:34:00 == 2042-07-24 13:34:00 == 2042-07-24 10:34:00
2042-08-04 11:35:00 == 2042-08-04 14:35:00 == 2042-08-04 11:35:00
2042-08-15 00:36:00 == 2042-08-15 03:36:00 == 2042-08-15 00:36:00
2042-08-26 01:37:00 == 2042-08-26 04:37:00 == 2042-08-26 01:37:00
2042-09-06 02:38:00 == 2042-09-06 05:38:00 == 2042-09-06 02:38:00
2042-09-17 03:39:00 == 2042-09-17 06:39:00 == 2042-09-17 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2042-09-28 04:40:00 == 2042-09-28 08:40:00 == 2042-09-28 04:40:00
2042-10-09 05:41:00 == 2042-10-09 08:41:00 == 2042-10-09 05:41:00
2042-10-20 06:42:00 == 2042-10-20 09:42:00 == 2042-10-20 06:42:00
2042-10-31 07:43:00 == 2042-10-31 10:43:00 == 2042-10-31 07:43:00
2042-11-11 08:44:00 == 2042-11-11 11:44:00 == 2042-11-11 08:44:00
2042-11-22 09:45:00 == 2042-11-22 12:45:00 == 2042-11-22 09:45:00
2042-12-03 10:46:00 == 2042-12-03 13:46:00 == 2042-12-03 10:46:00
2042-12-14 11:47:00 == 2042-12-14 14:47:00 == 2042-12-14 11:47:00
2042-12-25 00:48:00 == 2042-12-25 03:48:00 == 2042-12-25 00:48:00
2043-01-05 01:49:00 == 2043-01-05 04:49:00 == 2043-01-05 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2043-01-16 02:50:00 == 2043-01-16 05:50:00 == 2043-01-16 02:50:00
2043-01-27 03:51:00 == 2043-01-27 06:51:00 == 2043-01-27 03:51:00
2043-02-07 04:52:00 == 2043-02-07 07:52:00 == 2043-02-07 04:52:00
2043-02-18 05:53:00 == 2043-02-18 08:53:00 == 2043-02-18 05:53:00
2043-03-01 06:54:00 == 2043-03-01 09:54:00 == 2043-03-01 06:54:00
2043-03-12 07:55:00 == 2043-03-12 10:55:00 == 2043-03-12 07:55:00
2043-03-23 08:56:00 == 2043-03-23 11:56:00 == 2043-03-23 08:56:00
2043-04-03 09:57:00 == 2043-04-03 12:57:00 == 2043-04-03 09:57:00
2043-04-14 10:58:00 == 2043-04-14 13:58:00 == 2043-04-14 10:58:00
2043-04-25 11:59:00 == 2043-04-25 14:59:00 == 2043-04-25 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2043-05-06 00:00:00 == 2043-05-06 03:00:00 == 2043-05-06 00:00:00
2043-05-17 01:01:00 == 2043-05-17 04:01:00 == 2043-05-17 01:01:00
2043-05-28 02:02:00 == 2043-05-28 05:02:00 == 2043-05-28 02:02:00
2043-06-08 03:03:00 == 2043-06-08 06:03:00 == 2043-06-08 03:03:00
2043-06-19 04:04:00 == 2043-06-19 07:04:00 == 2043-06-19 04:04:00
2043-06-30 05:05:00 == 2043-06-30 08:05:00 == 2043-06-30 05:05:00
2043-07-11 06:06:00 == 2043-07-11 09:06:00 == 2043-07-11 06:06:00
2043-07-22 07:07:00 == 2043-07-22 10:07:00 == 2043-07-22 07:07:00
2043-08-02 08:08:00 == 2043-08-02 11:08:00 == 2043-08-02 08:08:00
2043-08-13 09:09:00 == 2043-08-13 12:09:00 == 2043-08-13 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2043-08-24 10:10:00 == 2043-08-24 13:10:00 == 2043-08-24 10:10:00
2043-09-04 11:11:00 == 2043-09-04 14:11:00 == 2043-09-04 11:11:00
2043-09-15 00:12:00 == 2043-09-15 03:12:00 == 2043-09-15 00:12:00
2043-09-26 01:13:00 == 2043-09-26 04:13:00 == 2043-09-26 01:13:00
2043-10-07 02:14:00 == 2043-10-07 05:14:00 == 2043-10-07 02:14:00
2043-10-18 03:15:00 == 2043-10-18 06:15:00 == 2043-10-18 03:15:00
2043-10-29 04:16:00 == 2043-10-29 07:16:00 == 2043-10-29 04:16:00
2043-11-09 05:17:00 == 2043-11-09 08:17:00 == 2043-11-09 05:17:00
2043-11-20 06:18:00 == 2043-11-20 09:18:00 == 2043-11-20 06:18:00
2043-12-01 07:19:00 == 2043-12-01 10:19:00 == 2043-12-01 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2043-12-12 08:20:00 == 2043-12-12 11:20:00 == 2043-12-12 08:20:00
2043-12-23 09:21:00 == 2043-12-23 12:21:00 == 2043-12-23 09:21:00
2044-01-03 10:22:00 == 2044-01-03 13:22:00 == 2044-01-03 10:22:00
2044-01-14 11:23:00 == 2044-01-14 14:23:00 == 2044-01-14 11:23:00
2044-01-25 00:24:00 == 2044-01-25 03:24:00 == 2044-01-25 00:24:00
2044-02-05 01:25:00 == 2044-02-05 04:25:00 == 2044-02-05 01:25:00
2044-02-16 02:26:00 == 2044-02-16 05:26:00 == 2044-02-16 02:26:00
2044-02-27 03:27:00 == 2044-02-27 06:27:00 == 2044-02-27 03:27:00
2044-03-09 04:28:00 == 2044-03-09 07:28:00 == 2044-03-09 04:28:00
2044-03-20 05:29:00 == 2044-03-20 08:29:00 == 2044-03-20 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2044-03-31 06:30:00 == 2044-03-31 09:30:00 == 2044-03-31 06:30:00
2044-04-11 07:31:00 == 2044-04-11 10:31:00 == 2044-04-11 07:31:00
2044-04-22 08:32:00 == 2044-04-22 11:32:00 == 2044-04-22 08:32:00
2044-05-03 09:33:00 == 2044-05-03 12:33:00 == 2044-05-03 09:33:00
2044-05-14 10:34:00 == 2044-05-14 13:34:00 == 2044-05-14 10:34:00
2044-05-25 11:35:00 == 2044-05-25 14:35:00 == 2044-05-25 11:35:00
2044-06-05 00:36:00 == 2044-06-05 03:36:00 == 2044-06-05 00:36:00
2044-06-16 01:37:00 == 2044-06-16 04:37:00 == 2044-06-16 01:37:00
2044-06-27 02:38:00 == 2044-06-27 05:38:00 == 2044-06-27 02:38:00
2044-07-08 03:39:00 == 2044-07-08 06:39:00 == 2044-07-08 03:39:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2044-07-19 04:40:00 == 2044-07-19 07:40:00 == 2044-07-19 04:40:00
2044-07-30 05:41:00 == 2044-07-30 08:41:00 == 2044-07-30 05:41:00
2044-08-10 06:42:00 == 2044-08-10 09:42:00 == 2044-08-10 06:42:00
2044-08-21 07:43:00 == 2044-08-21 10:43:00 == 2044-08-21 07:43:00
2044-09-01 08:44:00 == 2044-09-01 11:44:00 == 2044-09-01 08:44:00
2044-09-12 09:45:00 == 2044-09-12 12:45:00 == 2044-09-12 09:45:00
2044-09-23 10:46:00 == 2044-09-23 13:46:00 == 2044-09-23 10:46:00
2044-10-04 11:47:00 == 2044-10-04 14:47:00 == 2044-10-04 11:47:00
2044-10-15 00:48:00 == 2044-10-15 03:48:00 == 2044-10-15 00:48:00
2044-10-26 01:49:00 == 2044-10-26 04:49:00 == 2044-10-26 01:49:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2044-11-06 02:50:00 == 2044-11-06 05:50:00 == 2044-11-06 02:50:00
2044-11-17 03:51:00 == 2044-11-17 06:51:00 == 2044-11-17 03:51:00
2044-11-28 04:52:00 == 2044-11-28 07:52:00 == 2044-11-28 04:52:00
2044-12-09 05:53:00 == 2044-12-09 08:53:00 == 2044-12-09 05:53:00
2044-12-20 06:54:00 == 2044-12-20 09:54:00 == 2044-12-20 06:54:00
2044-12-31 07:55:00 == 2044-12-31 10:55:00 == 2044-12-31 07:55:00
2045-01-11 08:56:00 == 2045-01-11 11:56:00 == 2045-01-11 08:56:00
2045-01-22 09:57:00 == 2045-01-22 12:57:00 == 2045-01-22 09:57:00
2045-02-02 10:58:00 == 2045-02-02 13:58:00 == 2045-02-02 10:58:00
2045-02-13 11:59:00 == 2045-02-13 14:59:00 == 2045-02-13 11:59:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2045-02-24 00:00:00 == 2045-02-24 03:00:00 == 2045-02-24 00:00:00
2045-03-07 01:01:00 == 2045-03-07 04:01:00 == 2045-03-07 01:01:00
2045-03-18 02:02:00 == 2045-03-18 05:02:00 == 2045-03-18 02:02:00
2045-03-29 03:03:00 == 2045-03-29 06:03:00 == 2045-03-29 03:03:00
2045-04-09 04:04:00 == 2045-04-09 07:04:00 == 2045-04-09 04:04:00
2045-04-20 05:05:00 == 2045-04-20 08:05:00 == 2045-04-20 05:05:00
2045-05-01 06:06:00 == 2045-05-01 09:06:00 == 2045-05-01 06:06:00
2045-05-12 07:07:00 == 2045-05-12 10:07:00 == 2045-05-12 07:07:00
2045-05-23 08:08:00 == 2045-05-23 11:08:00 == 2045-05-23 08:08:00
2045-06-03 09:09:00 == 2045-06-03 12:09:00 == 2045-06-03 09:09:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2045-06-14 10:10:00 == 2045-06-14 13:10:00 == 2045-06-14 10:10:00
2045-06-25 11:11:00 == 2045-06-25 14:11:00 == 2045-06-25 11:11:00
2045-07-06 00:12:00 == 2045-07-06 03:12:00 == 2045-07-06 00:12:00
2045-07-17 01:13:00 == 2045-07-17 04:13:00 == 2045-07-17 01:13:00
2045-07-28 02:14:00 == 2045-07-28 05:14:00 == 2045-07-28 02:14:00
2045-08-08 03:15:00 == 2045-08-08 06:15:00 == 2045-08-08 03:15:00
2045-08-19 04:16:00 == 2045-08-19 07:16:00 == 2045-08-19 04:16:00
2045-08-30 05:17:00 == 2045-08-30 08:17:00 == 2045-08-30 05:17:00
2045-09-10 06:18:00 == 2045-09-10 09:18:00 == 2045-09-10 06:18:00
2045-09-21 07:19:00 == 2045-09-21 10:19:00 == 2045-09-21 07:19:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2045-10-02 08:20:00 == 2045-10-02 11:20:00 == 2045-10-02 08:20:00
2045-10-13 09:21:00 == 2045-10-13 12:21:00 == 2045-10-13 09:21:00
2045-10-24 10:22:00 == 2045-10-24 13:22:00 == 2045-10-24 10:22:00
2045-11-04 11:23:00 == 2045-11-04 14:23:00 == 2045-11-04 11:23:00
2045-11-15 00:24:00 == 2045-11-15 03:24:00 == 2045-11-15 00:24:00
2045-11-26 01:25:00 == 2045-11-26 04:25:00 == 2045-11-26 01:25:00
2045-12-07 02:26:00 == 2045-12-07 05:26:00 == 2045-12-07 02:26:00
2045-12-18 03:27:00 == 2045-12-18 06:27:00 == 2045-12-18 03:27:00
2045-12-29 04:28:00 == 2045-12-29 07:28:00 == 2045-12-29 04:28:00
2046-01-09 05:29:00 == 2046-01-09 08:29:00 == 2046-01-09 05:29:00
Australia/Melbourne    Pacific/Apia           Australia/Melbourne
2046-01-20 06:30:00 == 2046-01-20 09:30:00 == 2046-01-20 06:30:00
2046-01-31 07:31:00 == 2046-01-31 10:31:00 == 2046-01-31 07:31:00
2046-02-11 08:32:00 == 2046-02-11 11:32:00 == 2046-02-11 08:32:00
2046-02-22 09:33:00 == 2046-02-22 12:33:00 == 2046-02-22 09:33:00
2046-03-05 10:34:00 == 2046-03-05 13:34:00 == 2046-03-05 10:34:00
2046-03-16 11:35:00 == 2046-03-16 14:35:00 == 2046-03-16 11:35:00
2046-03-27 00:36:00 == 2046-03-27 03:36:00 == 2046-03-27 00:36:00
2046-04-07 01:37:00 == 2046-04-07 04:37:00 == 2046-04-07 01:37:00
2046-04-18 02:38:00 == 2046-04-18 05:38:00 == 2046-04-18 02:38:00

Tuesday, February 23, 2016

Java Clone/Copy InputStream


package com.pritom.kumar;


import java.io.*;

/**
 * Created by pritom on 23/02/2016.
 */
public class CloneInputStream {
    public static void main(String[] args) throws Exception {
        File file = new File("input.csv");
        InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
        System.out.println("Length1=" + inputStreamToString(inputStream).length());
        InputStream inputStreamCloned = clone(inputStream);
        System.out.println("Length2=" + inputStreamToString(inputStreamCloned).length());
        inputStreamCloned = clone(inputStream);
        System.out.println("Length3=" + inputStreamToString(inputStreamCloned).length());

        inputStream = new BufferedInputStream(new ByteArrayInputStream("Pritom Kumar".getBytes()));
        System.out.println("\nLength1=" + inputStreamToString(inputStream).length());
        inputStreamCloned = clone(inputStream);
        System.out.println("Length2=" + inputStreamToString(inputStreamCloned).length());
        inputStreamCloned = clone(inputStream);
        System.out.println("Length3=" + inputStreamToString(inputStreamCloned).length());
    }

    public static InputStream clone(final InputStream inputStream) {
        try {
            inputStream.mark(0);
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int readLength = 0;
            while ((readLength = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, readLength);
            }
            inputStream.reset();
            outputStream.flush();
            return new ByteArrayInputStream(outputStream.toByteArray());
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }

    public static String inputStreamToString(final InputStream inputStream) {
        try {
            Writer writer5 = new StringWriter();
            Reader reader = new BufferedReader(new InputStreamReader(clone(inputStream), "UTF-8"));
            int readLength = 0;
            char[] buffer = new char[1024];
            while ((readLength = reader.read(buffer)) != -1) {
                writer5.write(buffer, 0, readLength);
            }
            return writer5.toString();
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
}

Output

Length1=5357
Length2=5357
Length3=5357

Length1=12
Length2=12
Length3=12

Monday, January 18, 2016

Convert Exception Details To String Using Java

package com.pritom.kumar;

import java.io.PrintWriter;
import java.io.StringWriter;

/**
 * Created by pritom on 18/01/2016.
 */
public class ExceptionToString {
    public static String convertExceptionToString(Throwable throwable) {
        try {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            throwable.printStackTrace(pw);
            return sw.toString();
        }
        catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
}

Thursday, December 3, 2015

Grails Error Handling With Custom Http Status Code

First need to create a trait Groovy file as follows under src/groovy:

trait CustomExceptionHandler {
    /* Handle common exception */
    def handleException(Exception e) {
        handleCustomException(new CustomException(e.getMessage()))
    }

    /* Handle defined custom exception */
    def handleCustomException2(CustomException2 e) {
        handleCustomException(e)
    }

    /* Handle defined custom exception */
    def handleCustomException(CustomException e) {
        if (!CommonUtils.request) {
            // do something
        }
        else {
            CommonUtils.currentResponse.status = 220 (Custom response code)
            if(e.getStatusCode()) {
                CommonUtils.currentResponse.status = e.getStatusCode()
            }
            if (CommonUtils.request.xhr) {
                def error = [
                        type: "error",
                        message: e.getMessage()
                ]
                render error as JSON
            }
            else {
                render(view: "/error/error", model: [exception: e])
            }
        }
    }
}

Create a groovy class under src/groovy:

import org.springframework.web.context.request.RequestContextHolder
class CommonUtils {
    public static def getRequest() {
        def request = RequestContextHolder.getRequestAttributes()
        return request ? request.request : null
    }

    public static HttpServletResponse getCurrentResponse() {
        return WebUtils.retrieveGrailsWebRequest().getCurrentResponse()
    }
}

Exception Types (Reside in src/groovy):

class CustomException extends RuntimeException {

}
class CustomException2 extends CustomException {

}

How controller can use this feature:

class Controller1 implements CustomExceptionHandler {
    def index() {
        throw new Exception("Common exception")
    }

    def index2() {
        throw new CustomException("Defined custom exception")
    }

    def index3() {
        someService.index3()
    }

    def index4() {
        someService.index4()
    }
}

Exception thrown from service bahave same as from controller

class SomeService {
    def index3() {
        throw new Exception("Common exception")
    }

    def index4() {
        throw new CustomException("Defined custom exception")
    }
}