Search in sources :

Example 36 with TimeZone

use of android.icu.util.TimeZone in project j2objc by google.

the class TimeZoneRegressionTest method Test4208960.

/**
 * SimpleTimeZone.getOffset() throws IllegalArgumentException when to get
 * of 2/29/1996 (leap day).
 */
@Test
public void Test4208960() {
    TimeZone tz = TimeZone.getTimeZone("PST");
    try {
        /*int offset =*/
        tz.getOffset(GregorianCalendar.AD, 1996, Calendar.FEBRUARY, 29, Calendar.THURSDAY, 0);
    // offset = 0;
    } catch (IllegalArgumentException e) {
        errln("FAILED: to get TimeZone.getOffset(2/29/96)");
    }
    try {
        /*int offset =*/
        tz.getOffset(GregorianCalendar.AD, 1997, Calendar.FEBRUARY, 29, Calendar.THURSDAY, 0);
        // offset = 0;
        warnln("FAILED: TimeZone.getOffset(2/29/97) expected to throw Exception.");
    } catch (IllegalArgumentException e) {
        logln("got IllegalArgumentException");
    }
}
Also used : SimpleTimeZone(android.icu.util.SimpleTimeZone) TimeZone(android.icu.util.TimeZone) Test(org.junit.Test)

Example 37 with TimeZone

use of android.icu.util.TimeZone in project j2objc by google.

the class ZoneMeta method getAvailableIDs.

/**
 * Returns an immutable set of system IDs for the given conditions.
 * @param type      a system time zone type.
 * @param region    a region, or null.
 * @param rawOffset a zone raw offset or null.
 * @return An immutable set of system IDs for the given conditions.
 */
public static Set<String> getAvailableIDs(SystemTimeZoneType type, String region, Integer rawOffset) {
    Set<String> baseSet = null;
    switch(type) {
        case ANY:
            baseSet = getSystemZIDs();
            break;
        case CANONICAL:
            baseSet = getCanonicalSystemZIDs();
            break;
        case CANONICAL_LOCATION:
            baseSet = getCanonicalSystemLocationZIDs();
            break;
        default:
            // never occur
            throw new IllegalArgumentException("Unknown SystemTimeZoneType");
    }
    if (region == null && rawOffset == null) {
        return baseSet;
    }
    if (region != null) {
        region = region.toUpperCase(Locale.ENGLISH);
    }
    // Filter by region/rawOffset
    Set<String> result = new TreeSet<String>();
    for (String id : baseSet) {
        if (region != null) {
            String r = getRegion(id);
            if (!region.equals(r)) {
                continue;
            }
        }
        if (rawOffset != null) {
            // This is VERY inefficient.
            TimeZone z = getSystemTimeZone(id);
            if (z == null || !rawOffset.equals(z.getRawOffset())) {
                continue;
            }
        }
        result.add(id);
    }
    if (result.isEmpty()) {
        return Collections.emptySet();
    }
    return Collections.unmodifiableSet(result);
}
Also used : SimpleTimeZone(android.icu.util.SimpleTimeZone) TimeZone(android.icu.util.TimeZone) TreeSet(java.util.TreeSet)

Example 38 with TimeZone

use of android.icu.util.TimeZone in project j2objc by google.

the class TimeZoneGenericNames method init.

/**
 * Private method initializing the instance of <code>TimeZoneGenericName</code>.
 * This method should be called from a constructor and readObject.
 */
private void init() {
    if (_tznames == null) {
        _tznames = TimeZoneNames.getInstance(_locale);
    }
    _genericLocationNamesMap = new ConcurrentHashMap<String, String>();
    _genericPartialLocationNamesMap = new ConcurrentHashMap<String, String>();
    _gnamesTrie = new TextTrieMap<NameInfo>(true);
    _gnamesTrieFullyLoaded = false;
    // Preload zone strings for the default time zone
    TimeZone tz = TimeZone.getDefault();
    String tzCanonicalID = ZoneMeta.getCanonicalCLDRID(tz);
    if (tzCanonicalID != null) {
        loadStrings(tzCanonicalID);
    }
}
Also used : TimeZone(android.icu.util.TimeZone) BasicTimeZone(android.icu.util.BasicTimeZone)

Example 39 with TimeZone

use of android.icu.util.TimeZone in project j2objc by google.

the class IslamicTest method TestIslamicUmAlQura.

@Test
public void TestIslamicUmAlQura() {
    class GregoUmmAlQuraMap {

        public int gYear;

        // 1-based
        public int gMon;

        public int gDay;

        public int uYear;

        // 1-based
        public int uMon;

        public int uDay;

        // Simple constructor
        public GregoUmmAlQuraMap(int gY, int gM, int gD, int uY, int uM, int uD) {
            gYear = gY;
            gMon = gM;
            gDay = gD;
            uYear = uY;
            uMon = uM;
            uDay = uD;
        }
    }
    ;
    // data from
    // Official Umm-al-Qura calendar of SA:
    // home, http://www.ummulqura.org.sa/default.aspx
    // converter, http://www.ummulqura.org.sa/Index.aspx
    final GregoUmmAlQuraMap[] guMappings = { // (using 1-based months here)
    new GregoUmmAlQuraMap(1882, 11, 12, 1300, 1, 1), new GregoUmmAlQuraMap(1892, 7, 25, 1310, 1, 1), new GregoUmmAlQuraMap(1896, 6, 12, 1314, 1, 1), new GregoUmmAlQuraMap(1898, 5, 22, 1316, 1, 1), new GregoUmmAlQuraMap(1900, 4, 30, 1318, 1, 1), new GregoUmmAlQuraMap(1901, 4, 20, 1319, 1, 1), new GregoUmmAlQuraMap(1902, 4, 10, 1320, 1, 1), new GregoUmmAlQuraMap(1903, 3, 30, 1321, 1, 1), new GregoUmmAlQuraMap(1904, 3, 19, 1322, 1, 1), new GregoUmmAlQuraMap(1905, 3, 8, 1323, 1, 1), new GregoUmmAlQuraMap(1906, 2, 25, 1324, 1, 1), new GregoUmmAlQuraMap(1907, 2, 14, 1325, 1, 1), new GregoUmmAlQuraMap(1908, 2, 4, 1326, 1, 1), new GregoUmmAlQuraMap(1909, 1, 23, 1327, 1, 1), new GregoUmmAlQuraMap(1910, 1, 13, 1328, 1, 1), new GregoUmmAlQuraMap(1911, 1, 2, 1329, 1, 1), new GregoUmmAlQuraMap(1911, 12, 22, 1330, 1, 1), new GregoUmmAlQuraMap(1912, 12, 10, 1331, 1, 1), new GregoUmmAlQuraMap(1913, 11, 30, 1332, 1, 1), new GregoUmmAlQuraMap(1914, 11, 19, 1333, 1, 1), new GregoUmmAlQuraMap(1915, 11, 9, 1334, 1, 1), new GregoUmmAlQuraMap(1916, 10, 28, 1335, 1, 1), new GregoUmmAlQuraMap(1917, 10, 18, 1336, 1, 1), new GregoUmmAlQuraMap(1918, 10, 7, 1337, 1, 1), new GregoUmmAlQuraMap(1919, 9, 26, 1338, 1, 1), new GregoUmmAlQuraMap(1920, 9, 14, 1339, 1, 1), new GregoUmmAlQuraMap(1921, 9, 4, 1340, 1, 1), new GregoUmmAlQuraMap(1922, 8, 24, 1341, 1, 1), new GregoUmmAlQuraMap(1923, 8, 14, 1342, 1, 1), new GregoUmmAlQuraMap(1924, 8, 2, 1343, 1, 1), new GregoUmmAlQuraMap(1925, 7, 22, 1344, 1, 1), new GregoUmmAlQuraMap(1926, 7, 11, 1345, 1, 1), new GregoUmmAlQuraMap(1927, 6, 30, 1346, 1, 1), new GregoUmmAlQuraMap(1928, 6, 19, 1347, 1, 1), new GregoUmmAlQuraMap(1929, 6, 9, 1348, 1, 1), new GregoUmmAlQuraMap(1930, 5, 29, 1349, 1, 1), new GregoUmmAlQuraMap(1931, 5, 19, 1350, 1, 1), new GregoUmmAlQuraMap(1932, 5, 7, 1351, 1, 1), new GregoUmmAlQuraMap(1933, 4, 26, 1352, 1, 1), new GregoUmmAlQuraMap(1934, 4, 15, 1353, 1, 1), new GregoUmmAlQuraMap(1935, 4, 5, 1354, 1, 1), new GregoUmmAlQuraMap(1936, 3, 24, 1355, 1, 1), new GregoUmmAlQuraMap(1937, 3, 14, 1356, 1, 1), new GregoUmmAlQuraMap(1938, 3, 4, 1357, 1, 1), new GregoUmmAlQuraMap(1939, 2, 21, 1358, 1, 1), new GregoUmmAlQuraMap(1940, 2, 10, 1359, 1, 1), new GregoUmmAlQuraMap(1941, 1, 29, 1360, 1, 1), new GregoUmmAlQuraMap(1942, 1, 18, 1361, 1, 1), new GregoUmmAlQuraMap(1943, 1, 8, 1362, 1, 1), new GregoUmmAlQuraMap(1943, 12, 28, 1363, 1, 1), new GregoUmmAlQuraMap(1944, 12, 17, 1364, 1, 1), new GregoUmmAlQuraMap(1945, 12, 6, 1365, 1, 1), new GregoUmmAlQuraMap(1946, 11, 25, 1366, 1, 1), new GregoUmmAlQuraMap(1947, 11, 14, 1367, 1, 1), new GregoUmmAlQuraMap(1948, 11, 3, 1368, 1, 1), new GregoUmmAlQuraMap(1949, 10, 23, 1369, 1, 1), new GregoUmmAlQuraMap(1950, 10, 13, 1370, 1, 1), new GregoUmmAlQuraMap(1951, 10, 3, 1371, 1, 1), new GregoUmmAlQuraMap(1952, 9, 21, 1372, 1, 1), new GregoUmmAlQuraMap(1953, 9, 10, 1373, 1, 1), new GregoUmmAlQuraMap(1954, 8, 30, 1374, 1, 1), new GregoUmmAlQuraMap(1955, 8, 19, 1375, 1, 1), new GregoUmmAlQuraMap(1956, 8, 8, 1376, 1, 1), new GregoUmmAlQuraMap(1957, 7, 29, 1377, 1, 1), new GregoUmmAlQuraMap(1958, 7, 18, 1378, 1, 1), new GregoUmmAlQuraMap(1959, 7, 8, 1379, 1, 1), new GregoUmmAlQuraMap(1960, 6, 26, 1380, 1, 1), new GregoUmmAlQuraMap(1961, 6, 15, 1381, 1, 1), new GregoUmmAlQuraMap(1962, 6, 4, 1382, 1, 1), new GregoUmmAlQuraMap(1963, 5, 24, 1383, 1, 1), new GregoUmmAlQuraMap(1964, 5, 13, 1384, 1, 1), new GregoUmmAlQuraMap(1965, 5, 3, 1385, 1, 1), new GregoUmmAlQuraMap(1966, 4, 22, 1386, 1, 1), new GregoUmmAlQuraMap(1967, 4, 11, 1387, 1, 1), new GregoUmmAlQuraMap(1968, 3, 30, 1388, 1, 1), new GregoUmmAlQuraMap(1969, 3, 19, 1389, 1, 1), new GregoUmmAlQuraMap(1970, 3, 9, 1390, 1, 1), new GregoUmmAlQuraMap(1971, 2, 27, 1391, 1, 1), new GregoUmmAlQuraMap(1972, 2, 16, 1392, 1, 1), new GregoUmmAlQuraMap(1973, 2, 5, 1393, 1, 1), new GregoUmmAlQuraMap(1974, 1, 25, 1394, 1, 1), new GregoUmmAlQuraMap(1975, 1, 14, 1395, 1, 1), new GregoUmmAlQuraMap(1976, 1, 3, 1396, 1, 1), new GregoUmmAlQuraMap(1976, 12, 22, 1397, 1, 1), new GregoUmmAlQuraMap(1977, 12, 12, 1398, 1, 1), new GregoUmmAlQuraMap(1978, 12, 1, 1399, 1, 1), new GregoUmmAlQuraMap(1979, 11, 21, 1400, 1, 1), new GregoUmmAlQuraMap(1980, 11, 9, 1401, 1, 1), new GregoUmmAlQuraMap(1981, 10, 29, 1402, 1, 1), new GregoUmmAlQuraMap(1982, 10, 18, 1403, 1, 1), new GregoUmmAlQuraMap(1983, 10, 8, 1404, 1, 1), new GregoUmmAlQuraMap(1984, 9, 26, 1405, 1, 1), new GregoUmmAlQuraMap(1985, 9, 16, 1406, 1, 1), new GregoUmmAlQuraMap(1986, 9, 6, 1407, 1, 1), new GregoUmmAlQuraMap(1987, 8, 26, 1408, 1, 1), new GregoUmmAlQuraMap(1988, 8, 14, 1409, 1, 1), new GregoUmmAlQuraMap(1989, 8, 3, 1410, 1, 1), new GregoUmmAlQuraMap(1990, 7, 23, 1411, 1, 1), new GregoUmmAlQuraMap(1991, 7, 13, 1412, 1, 1), new GregoUmmAlQuraMap(1992, 7, 2, 1413, 1, 1), new GregoUmmAlQuraMap(1993, 6, 21, 1414, 1, 1), new GregoUmmAlQuraMap(1994, 6, 11, 1415, 1, 1), new GregoUmmAlQuraMap(1995, 5, 31, 1416, 1, 1), new GregoUmmAlQuraMap(1996, 5, 19, 1417, 1, 1), new GregoUmmAlQuraMap(1997, 5, 8, 1418, 1, 1), new GregoUmmAlQuraMap(1998, 4, 28, 1419, 1, 1), new GregoUmmAlQuraMap(1999, 4, 17, 1420, 1, 1), new GregoUmmAlQuraMap(1999, 5, 16, 1420, 2, 1), new GregoUmmAlQuraMap(1999, 6, 15, 1420, 3, 1), new GregoUmmAlQuraMap(1999, 7, 14, 1420, 4, 1), new GregoUmmAlQuraMap(1999, 8, 12, 1420, 5, 1), new GregoUmmAlQuraMap(1999, 9, 11, 1420, 6, 1), new GregoUmmAlQuraMap(1999, 10, 10, 1420, 7, 1), new GregoUmmAlQuraMap(1999, 11, 9, 1420, 8, 1), new GregoUmmAlQuraMap(1999, 12, 9, 1420, 9, 1), new GregoUmmAlQuraMap(2000, 1, 8, 1420, 10, 1), new GregoUmmAlQuraMap(2000, 2, 7, 1420, 11, 1), new GregoUmmAlQuraMap(2000, 3, 7, 1420, 12, 1), new GregoUmmAlQuraMap(2000, 4, 6, 1421, 1, 1), new GregoUmmAlQuraMap(2000, 5, 5, 1421, 2, 1), new GregoUmmAlQuraMap(2000, 6, 3, 1421, 3, 1), new GregoUmmAlQuraMap(2000, 7, 3, 1421, 4, 1), new GregoUmmAlQuraMap(2000, 8, 1, 1421, 5, 1), new GregoUmmAlQuraMap(2000, 8, 30, 1421, 6, 1), new GregoUmmAlQuraMap(2000, 9, 28, 1421, 7, 1), new GregoUmmAlQuraMap(2000, 10, 28, 1421, 8, 1), new GregoUmmAlQuraMap(2000, 11, 27, 1421, 9, 1), new GregoUmmAlQuraMap(2000, 12, 27, 1421, 10, 1), new GregoUmmAlQuraMap(2001, 1, 26, 1421, 11, 1), new GregoUmmAlQuraMap(2001, 2, 24, 1421, 12, 1), new GregoUmmAlQuraMap(2001, 3, 26, 1422, 1, 1), new GregoUmmAlQuraMap(2001, 4, 25, 1422, 2, 1), new GregoUmmAlQuraMap(2001, 5, 24, 1422, 3, 1), new GregoUmmAlQuraMap(2001, 6, 22, 1422, 4, 1), new GregoUmmAlQuraMap(2001, 7, 22, 1422, 5, 1), new GregoUmmAlQuraMap(2001, 8, 20, 1422, 6, 1), new GregoUmmAlQuraMap(2001, 9, 18, 1422, 7, 1), new GregoUmmAlQuraMap(2001, 10, 17, 1422, 8, 1), new GregoUmmAlQuraMap(2001, 11, 16, 1422, 9, 1), new GregoUmmAlQuraMap(2001, 12, 16, 1422, 10, 1), new GregoUmmAlQuraMap(2002, 1, 15, 1422, 11, 1), new GregoUmmAlQuraMap(2002, 2, 13, 1422, 12, 1), new GregoUmmAlQuraMap(2002, 3, 15, 1423, 1, 1), new GregoUmmAlQuraMap(2002, 4, 14, 1423, 2, 1), new GregoUmmAlQuraMap(2002, 5, 13, 1423, 3, 1), new GregoUmmAlQuraMap(2002, 6, 12, 1423, 4, 1), new GregoUmmAlQuraMap(2002, 7, 11, 1423, 5, 1), new GregoUmmAlQuraMap(2002, 8, 10, 1423, 6, 1), new GregoUmmAlQuraMap(2002, 9, 8, 1423, 7, 1), new GregoUmmAlQuraMap(2002, 10, 7, 1423, 8, 1), new GregoUmmAlQuraMap(2002, 11, 6, 1423, 9, 1), new GregoUmmAlQuraMap(2002, 12, 5, 1423, 10, 1), new GregoUmmAlQuraMap(2003, 1, 4, 1423, 11, 1), new GregoUmmAlQuraMap(2003, 2, 2, 1423, 12, 1), new GregoUmmAlQuraMap(2003, 3, 4, 1424, 1, 1), new GregoUmmAlQuraMap(2003, 4, 3, 1424, 2, 1), new GregoUmmAlQuraMap(2003, 5, 2, 1424, 3, 1), new GregoUmmAlQuraMap(2003, 6, 1, 1424, 4, 1), new GregoUmmAlQuraMap(2003, 7, 1, 1424, 5, 1), new GregoUmmAlQuraMap(2003, 7, 30, 1424, 6, 1), new GregoUmmAlQuraMap(2003, 8, 29, 1424, 7, 1), new GregoUmmAlQuraMap(2003, 9, 27, 1424, 8, 1), new GregoUmmAlQuraMap(2003, 10, 26, 1424, 9, 1), new GregoUmmAlQuraMap(2003, 11, 25, 1424, 10, 1), new GregoUmmAlQuraMap(2003, 12, 24, 1424, 11, 1), new GregoUmmAlQuraMap(2004, 1, 23, 1424, 12, 1), new GregoUmmAlQuraMap(2004, 2, 21, 1425, 1, 1), new GregoUmmAlQuraMap(2004, 3, 22, 1425, 2, 1), new GregoUmmAlQuraMap(2004, 4, 20, 1425, 3, 1), new GregoUmmAlQuraMap(2004, 5, 20, 1425, 4, 1), new GregoUmmAlQuraMap(2004, 6, 19, 1425, 5, 1), new GregoUmmAlQuraMap(2004, 7, 18, 1425, 6, 1), new GregoUmmAlQuraMap(2004, 8, 17, 1425, 7, 1), new GregoUmmAlQuraMap(2004, 9, 15, 1425, 8, 1), new GregoUmmAlQuraMap(2004, 10, 15, 1425, 9, 1), new GregoUmmAlQuraMap(2004, 11, 14, 1425, 10, 1), new GregoUmmAlQuraMap(2004, 12, 13, 1425, 11, 1), new GregoUmmAlQuraMap(2005, 1, 12, 1425, 12, 1), new GregoUmmAlQuraMap(2005, 2, 10, 1426, 1, 1), new GregoUmmAlQuraMap(2005, 3, 11, 1426, 2, 1), new GregoUmmAlQuraMap(2005, 4, 10, 1426, 3, 1), new GregoUmmAlQuraMap(2005, 5, 9, 1426, 4, 1), new GregoUmmAlQuraMap(2005, 6, 8, 1426, 5, 1), new GregoUmmAlQuraMap(2005, 7, 7, 1426, 6, 1), new GregoUmmAlQuraMap(2005, 8, 6, 1426, 7, 1), new GregoUmmAlQuraMap(2005, 9, 5, 1426, 8, 1), new GregoUmmAlQuraMap(2005, 10, 4, 1426, 9, 1), new GregoUmmAlQuraMap(2005, 11, 3, 1426, 10, 1), new GregoUmmAlQuraMap(2005, 12, 3, 1426, 11, 1), new GregoUmmAlQuraMap(2006, 1, 1, 1426, 12, 1), new GregoUmmAlQuraMap(2006, 1, 31, 1427, 1, 1), new GregoUmmAlQuraMap(2006, 3, 1, 1427, 2, 1), new GregoUmmAlQuraMap(2006, 3, 30, 1427, 3, 1), new GregoUmmAlQuraMap(2006, 4, 29, 1427, 4, 1), new GregoUmmAlQuraMap(2006, 5, 28, 1427, 5, 1), new GregoUmmAlQuraMap(2006, 6, 27, 1427, 6, 1), new GregoUmmAlQuraMap(2006, 7, 26, 1427, 7, 1), new GregoUmmAlQuraMap(2006, 8, 25, 1427, 8, 1), new GregoUmmAlQuraMap(2006, 9, 24, 1427, 9, 1), new GregoUmmAlQuraMap(2006, 10, 23, 1427, 10, 1), new GregoUmmAlQuraMap(2006, 11, 22, 1427, 11, 1), new GregoUmmAlQuraMap(2006, 12, 22, 1427, 12, 1), new GregoUmmAlQuraMap(2007, 1, 20, 1428, 1, 1), new GregoUmmAlQuraMap(2007, 2, 19, 1428, 2, 1), new GregoUmmAlQuraMap(2007, 3, 20, 1428, 3, 1), new GregoUmmAlQuraMap(2007, 4, 18, 1428, 4, 1), new GregoUmmAlQuraMap(2007, 5, 18, 1428, 5, 1), new GregoUmmAlQuraMap(2007, 6, 16, 1428, 6, 1), new GregoUmmAlQuraMap(2007, 7, 15, 1428, 7, 1), new GregoUmmAlQuraMap(2007, 8, 14, 1428, 8, 1), new GregoUmmAlQuraMap(2007, 9, 13, 1428, 9, 1), new GregoUmmAlQuraMap(2007, 10, 13, 1428, 10, 1), new GregoUmmAlQuraMap(2007, 11, 11, 1428, 11, 1), new GregoUmmAlQuraMap(2007, 12, 11, 1428, 12, 1), new GregoUmmAlQuraMap(2008, 1, 10, 1429, 1, 1), new GregoUmmAlQuraMap(2008, 2, 8, 1429, 2, 1), new GregoUmmAlQuraMap(2008, 3, 9, 1429, 3, 1), new GregoUmmAlQuraMap(2008, 4, 7, 1429, 4, 1), new GregoUmmAlQuraMap(2008, 5, 6, 1429, 5, 1), new GregoUmmAlQuraMap(2008, 6, 5, 1429, 6, 1), new GregoUmmAlQuraMap(2008, 7, 4, 1429, 7, 1), new GregoUmmAlQuraMap(2008, 8, 2, 1429, 8, 1), new GregoUmmAlQuraMap(2008, 9, 1, 1429, 9, 1), new GregoUmmAlQuraMap(2008, 10, 1, 1429, 10, 1), new GregoUmmAlQuraMap(2008, 10, 30, 1429, 11, 1), new GregoUmmAlQuraMap(2008, 11, 29, 1429, 12, 1), new GregoUmmAlQuraMap(2008, 12, 29, 1430, 1, 1), new GregoUmmAlQuraMap(2009, 1, 27, 1430, 2, 1), new GregoUmmAlQuraMap(2009, 2, 26, 1430, 3, 1), new GregoUmmAlQuraMap(2009, 3, 28, 1430, 4, 1), new GregoUmmAlQuraMap(2009, 4, 26, 1430, 5, 1), new GregoUmmAlQuraMap(2009, 5, 25, 1430, 6, 1), new GregoUmmAlQuraMap(2009, 6, 24, 1430, 7, 1), new GregoUmmAlQuraMap(2009, 7, 23, 1430, 8, 1), new GregoUmmAlQuraMap(2009, 8, 22, 1430, 9, 1), new GregoUmmAlQuraMap(2009, 9, 20, 1430, 10, 1), new GregoUmmAlQuraMap(2009, 10, 20, 1430, 11, 1), new GregoUmmAlQuraMap(2009, 11, 18, 1430, 12, 1), new GregoUmmAlQuraMap(2009, 12, 18, 1431, 1, 1), new GregoUmmAlQuraMap(2010, 1, 16, 1431, 2, 1), new GregoUmmAlQuraMap(2010, 2, 15, 1431, 3, 1), new GregoUmmAlQuraMap(2010, 3, 17, 1431, 4, 1), new GregoUmmAlQuraMap(2010, 4, 15, 1431, 5, 1), new GregoUmmAlQuraMap(2010, 5, 15, 1431, 6, 1), new GregoUmmAlQuraMap(2010, 6, 13, 1431, 7, 1), new GregoUmmAlQuraMap(2010, 7, 13, 1431, 8, 1), new GregoUmmAlQuraMap(2010, 8, 11, 1431, 9, 1), new GregoUmmAlQuraMap(2010, 9, 10, 1431, 10, 1), new GregoUmmAlQuraMap(2010, 10, 9, 1431, 11, 1), new GregoUmmAlQuraMap(2010, 11, 7, 1431, 12, 1), new GregoUmmAlQuraMap(2010, 12, 7, 1432, 1, 1), new GregoUmmAlQuraMap(2011, 1, 5, 1432, 2, 1), new GregoUmmAlQuraMap(2011, 2, 4, 1432, 3, 1), new GregoUmmAlQuraMap(2011, 3, 6, 1432, 4, 1), new GregoUmmAlQuraMap(2011, 4, 5, 1432, 5, 1), new GregoUmmAlQuraMap(2011, 5, 4, 1432, 6, 1), new GregoUmmAlQuraMap(2011, 6, 3, 1432, 7, 1), new GregoUmmAlQuraMap(2011, 7, 2, 1432, 8, 1), new GregoUmmAlQuraMap(2011, 8, 1, 1432, 9, 1), new GregoUmmAlQuraMap(2011, 8, 30, 1432, 10, 1), new GregoUmmAlQuraMap(2011, 9, 29, 1432, 11, 1), new GregoUmmAlQuraMap(2011, 10, 28, 1432, 12, 1), new GregoUmmAlQuraMap(2011, 11, 26, 1433, 1, 1), new GregoUmmAlQuraMap(2011, 12, 26, 1433, 2, 1), new GregoUmmAlQuraMap(2012, 1, 24, 1433, 3, 1), new GregoUmmAlQuraMap(2012, 2, 23, 1433, 4, 1), new GregoUmmAlQuraMap(2012, 3, 24, 1433, 5, 1), new GregoUmmAlQuraMap(2012, 4, 22, 1433, 6, 1), new GregoUmmAlQuraMap(2012, 5, 22, 1433, 7, 1), new GregoUmmAlQuraMap(2012, 6, 21, 1433, 8, 1), new GregoUmmAlQuraMap(2012, 7, 20, 1433, 9, 1), new GregoUmmAlQuraMap(2012, 8, 19, 1433, 10, 1), new GregoUmmAlQuraMap(2012, 9, 17, 1433, 11, 1), new GregoUmmAlQuraMap(2012, 10, 17, 1433, 12, 1), new GregoUmmAlQuraMap(2012, 11, 15, 1434, 1, 1), new GregoUmmAlQuraMap(2012, 12, 14, 1434, 2, 1), new GregoUmmAlQuraMap(2013, 1, 13, 1434, 3, 1), new GregoUmmAlQuraMap(2013, 2, 11, 1434, 4, 1), new GregoUmmAlQuraMap(2013, 3, 13, 1434, 5, 1), new GregoUmmAlQuraMap(2013, 4, 11, 1434, 6, 1), new GregoUmmAlQuraMap(2013, 5, 11, 1434, 7, 1), new GregoUmmAlQuraMap(2013, 6, 10, 1434, 8, 1), new GregoUmmAlQuraMap(2013, 7, 9, 1434, 9, 1), new GregoUmmAlQuraMap(2013, 8, 8, 1434, 10, 1), new GregoUmmAlQuraMap(2013, 9, 7, 1434, 11, 1), new GregoUmmAlQuraMap(2013, 10, 6, 1434, 12, 1), new GregoUmmAlQuraMap(2013, 11, 4, 1435, 1, 1), new GregoUmmAlQuraMap(2013, 12, 4, 1435, 2, 1), new GregoUmmAlQuraMap(2014, 1, 2, 1435, 3, 1), new GregoUmmAlQuraMap(2014, 2, 1, 1435, 4, 1), new GregoUmmAlQuraMap(2014, 3, 2, 1435, 5, 1), new GregoUmmAlQuraMap(2014, 4, 1, 1435, 6, 1), new GregoUmmAlQuraMap(2014, 4, 30, 1435, 7, 1), new GregoUmmAlQuraMap(2014, 5, 30, 1435, 8, 1), new GregoUmmAlQuraMap(2014, 6, 28, 1435, 9, 1), new GregoUmmAlQuraMap(2014, 7, 28, 1435, 10, 1), new GregoUmmAlQuraMap(2014, 8, 27, 1435, 11, 1), new GregoUmmAlQuraMap(2014, 9, 25, 1435, 12, 1), new GregoUmmAlQuraMap(2014, 10, 25, 1436, 1, 1), new GregoUmmAlQuraMap(2014, 11, 23, 1436, 2, 1), new GregoUmmAlQuraMap(2014, 12, 23, 1436, 3, 1), new GregoUmmAlQuraMap(2015, 1, 21, 1436, 4, 1), new GregoUmmAlQuraMap(2015, 2, 20, 1436, 5, 1), new GregoUmmAlQuraMap(2015, 3, 21, 1436, 6, 1), new GregoUmmAlQuraMap(2015, 4, 20, 1436, 7, 1), new GregoUmmAlQuraMap(2015, 5, 19, 1436, 8, 1), new GregoUmmAlQuraMap(2015, 6, 18, 1436, 9, 1), new GregoUmmAlQuraMap(2015, 7, 17, 1436, 10, 1), new GregoUmmAlQuraMap(2015, 8, 16, 1436, 11, 1), new GregoUmmAlQuraMap(2015, 9, 14, 1436, 12, 1), new GregoUmmAlQuraMap(2015, 10, 14, 1437, 1, 1), new GregoUmmAlQuraMap(2015, 11, 13, 1437, 2, 1), new GregoUmmAlQuraMap(2015, 12, 12, 1437, 3, 1), new GregoUmmAlQuraMap(2016, 1, 11, 1437, 4, 1), new GregoUmmAlQuraMap(2016, 2, 10, 1437, 5, 1), new GregoUmmAlQuraMap(2016, 3, 10, 1437, 6, 1), new GregoUmmAlQuraMap(2016, 4, 8, 1437, 7, 1), new GregoUmmAlQuraMap(2016, 5, 8, 1437, 8, 1), new GregoUmmAlQuraMap(2016, 6, 6, 1437, 9, 1), new GregoUmmAlQuraMap(2016, 7, 6, 1437, 10, 1), new GregoUmmAlQuraMap(2016, 8, 4, 1437, 11, 1), new GregoUmmAlQuraMap(2016, 9, 2, 1437, 12, 1), new GregoUmmAlQuraMap(2016, 10, 2, 1438, 1, 1), new GregoUmmAlQuraMap(2016, 11, 1, 1438, 2, 1), new GregoUmmAlQuraMap(2016, 11, 30, 1438, 3, 1), new GregoUmmAlQuraMap(2016, 12, 30, 1438, 4, 1), new GregoUmmAlQuraMap(2017, 1, 29, 1438, 5, 1), new GregoUmmAlQuraMap(2017, 2, 28, 1438, 6, 1), new GregoUmmAlQuraMap(2017, 3, 29, 1438, 7, 1), new GregoUmmAlQuraMap(2017, 4, 27, 1438, 8, 1), new GregoUmmAlQuraMap(2017, 5, 27, 1438, 9, 1), new GregoUmmAlQuraMap(2017, 6, 25, 1438, 10, 1), new GregoUmmAlQuraMap(2017, 7, 24, 1438, 11, 1), new GregoUmmAlQuraMap(2017, 8, 23, 1438, 12, 1), new GregoUmmAlQuraMap(2017, 9, 21, 1439, 1, 1), new GregoUmmAlQuraMap(2017, 10, 21, 1439, 2, 1), new GregoUmmAlQuraMap(2017, 11, 19, 1439, 3, 1), new GregoUmmAlQuraMap(2017, 12, 19, 1439, 4, 1), new GregoUmmAlQuraMap(2018, 1, 18, 1439, 5, 1), new GregoUmmAlQuraMap(2018, 2, 17, 1439, 6, 1), new GregoUmmAlQuraMap(2018, 3, 18, 1439, 7, 1), new GregoUmmAlQuraMap(2018, 4, 17, 1439, 8, 1), new GregoUmmAlQuraMap(2018, 5, 16, 1439, 9, 1), new GregoUmmAlQuraMap(2018, 6, 15, 1439, 10, 1), new GregoUmmAlQuraMap(2018, 7, 14, 1439, 11, 1), new GregoUmmAlQuraMap(2018, 8, 12, 1439, 12, 1), new GregoUmmAlQuraMap(2018, 9, 11, 1440, 1, 1), new GregoUmmAlQuraMap(2019, 8, 31, 1441, 1, 1), new GregoUmmAlQuraMap(2020, 8, 20, 1442, 1, 1), new GregoUmmAlQuraMap(2021, 8, 9, 1443, 1, 1), new GregoUmmAlQuraMap(2022, 7, 30, 1444, 1, 1), new GregoUmmAlQuraMap(2023, 7, 19, 1445, 1, 1), new GregoUmmAlQuraMap(2024, 7, 7, 1446, 1, 1), new GregoUmmAlQuraMap(2025, 6, 26, 1447, 1, 1), new GregoUmmAlQuraMap(2026, 6, 16, 1448, 1, 1), new GregoUmmAlQuraMap(2027, 6, 6, 1449, 1, 1), new GregoUmmAlQuraMap(2028, 5, 25, 1450, 1, 1), new GregoUmmAlQuraMap(2029, 5, 14, 1451, 1, 1), new GregoUmmAlQuraMap(2030, 5, 4, 1452, 1, 1), new GregoUmmAlQuraMap(2031, 4, 23, 1453, 1, 1), new GregoUmmAlQuraMap(2032, 4, 11, 1454, 1, 1), new GregoUmmAlQuraMap(2033, 4, 1, 1455, 1, 1), new GregoUmmAlQuraMap(2034, 3, 22, 1456, 1, 1), new GregoUmmAlQuraMap(2035, 3, 11, 1457, 1, 1), new GregoUmmAlQuraMap(2036, 2, 29, 1458, 1, 1), new GregoUmmAlQuraMap(2037, 2, 17, 1459, 1, 1), new GregoUmmAlQuraMap(2038, 2, 6, 1460, 1, 1), new GregoUmmAlQuraMap(2039, 1, 26, 1461, 1, 1), new GregoUmmAlQuraMap(2040, 1, 15, 1462, 1, 1), new GregoUmmAlQuraMap(2041, 1, 4, 1463, 1, 1), new GregoUmmAlQuraMap(2041, 12, 25, 1464, 1, 1), new GregoUmmAlQuraMap(2042, 12, 14, 1465, 1, 1), new GregoUmmAlQuraMap(2043, 12, 3, 1466, 1, 1), new GregoUmmAlQuraMap(2044, 11, 21, 1467, 1, 1), new GregoUmmAlQuraMap(2045, 11, 11, 1468, 1, 1), new GregoUmmAlQuraMap(2046, 10, 31, 1469, 1, 1), new GregoUmmAlQuraMap(2047, 10, 21, 1470, 1, 1), new GregoUmmAlQuraMap(2048, 10, 9, 1471, 1, 1), new GregoUmmAlQuraMap(2049, 9, 29, 1472, 1, 1), new GregoUmmAlQuraMap(2050, 9, 18, 1473, 1, 1), new GregoUmmAlQuraMap(2051, 9, 7, 1474, 1, 1), new GregoUmmAlQuraMap(2052, 8, 26, 1475, 1, 1), new GregoUmmAlQuraMap(2053, 8, 15, 1476, 1, 1), new GregoUmmAlQuraMap(2054, 8, 5, 1477, 1, 1), new GregoUmmAlQuraMap(2055, 7, 26, 1478, 1, 1), new GregoUmmAlQuraMap(2056, 7, 14, 1479, 1, 1), new GregoUmmAlQuraMap(2057, 7, 3, 1480, 1, 1), new GregoUmmAlQuraMap(2058, 6, 22, 1481, 1, 1), new GregoUmmAlQuraMap(2059, 6, 11, 1482, 1, 1), new GregoUmmAlQuraMap(2061, 5, 21, 1484, 1, 1), new GregoUmmAlQuraMap(2063, 4, 30, 1486, 1, 1), new GregoUmmAlQuraMap(2065, 4, 7, 1488, 1, 1), new GregoUmmAlQuraMap(2067, 3, 17, 1490, 1, 1), new GregoUmmAlQuraMap(2069, 2, 23, 1492, 1, 1), new GregoUmmAlQuraMap(2071, 2, 2, 1494, 1, 1), new GregoUmmAlQuraMap(2073, 1, 10, 1496, 1, 1), new GregoUmmAlQuraMap(2074, 12, 20, 1498, 1, 1), new GregoUmmAlQuraMap(2076, 11, 28, 1500, 1, 1) };
    int firstYear = 1318;
    // *  use either 1 or 2 leading slashes to toggle
    // just enough to be pretty sure
    int lastYear = 1368;
    /*/
        int lastYear = 1480;    // the whole shootin' match
        //*/
    ULocale umalquraLoc = new ULocale("ar_SA@calendar=islamic-umalqura");
    ULocale gregoLoc = new ULocale("ar_SA@calendar=gregorian");
    TimeZone tzSA = TimeZone.getTimeZone("Asia/Riyadh");
    IslamicCalendar tstCal = new IslamicCalendar(tzSA, umalquraLoc);
    GregorianCalendar gregCal = new GregorianCalendar(tzSA, gregoLoc);
    tstCal.clear();
    tstCal.setLenient(false);
    int day = 0, month = 0, year = 0, initDay = 27, initMonth = IslamicCalendar.RAJAB, initYear = 1434;
    try {
        for (int startYear = firstYear; startYear <= lastYear; startYear++) {
            setAndTestWholeYear(tstCal, startYear);
        }
    } catch (Throwable t) {
        errln("unexpected exception thrown - message=" + t.getLocalizedMessage());
    }
    try {
        initMonth = IslamicCalendar.RABI_2;
        initDay = 5;
        int loopCnt = 25;
        tstCal.clear();
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
        for (int x = 1; x <= loopCnt; x++) {
            day = tstCal.get(Calendar.DAY_OF_MONTH);
            month = tstCal.get(Calendar.MONTH);
            year = tstCal.get(Calendar.YEAR);
            tstCal.roll(Calendar.DAY_OF_MONTH, true);
        }
        if (day != (initDay + loopCnt - 1) || month != IslamicCalendar.RABI_2 || year != 1434)
            errln("invalid values for RABI_2 date after roll of " + loopCnt);
    } catch (IllegalArgumentException iae) {
        errln("unexpected exception received!!!");
    }
    try {
        tstCal.clear();
        initMonth = 2;
        initDay = 30;
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
        errln("expected exception NOT thrown");
    } catch (IllegalArgumentException iae) {
    // expected this
    }
    try {
        tstCal.clear();
        initMonth = 3;
        initDay = 30;
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
    } catch (IllegalArgumentException iae) {
        errln("unexpected exception received!!!");
    }
    try {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date date = formatter.parse("1975-05-06");
        IslamicCalendar is_cal = new IslamicCalendar();
        is_cal.setCalculationType(CalculationType.ISLAMIC_UMALQURA);
        is_cal.setTime(date);
        SimpleDateFormat formatterIslamic = (SimpleDateFormat) is_cal.getDateTimeFormat(0, 0, umalquraLoc);
        formatterIslamic.applyPattern("yyyy-MMMM-dd");
        String str = formatterIslamic.format(is_cal.getTime());
        // 1395 - Rabi - 24
        int is_day = is_cal.get(Calendar.DAY_OF_MONTH);
        int is_month = is_cal.get(Calendar.MONTH);
        int is_year = is_cal.get(Calendar.YEAR);
        if (is_day != 24 || is_month != IslamicCalendar.RABI_2 || is_year != 1395)
            errln("unexpected conversion date: " + is_day + " " + is_month + " " + is_year);
        String expectedFormatResult = "\u0661\u0663\u0669\u0665-\u0631\u0628\u064A\u0639 \u0627\u0644\u0622\u062E\u0631-\u0662\u0664";
        if (!str.equals(expectedFormatResult))
            errln("unexpected formatted result: " + str);
    } catch (Exception e) {
        errln(e.getLocalizedMessage());
    }
    // check against data
    gregCal.clear();
    tstCal.clear();
    for (GregoUmmAlQuraMap guMap : guMappings) {
        gregCal.set(guMap.gYear, guMap.gMon - 1, guMap.gDay, 12, 0);
        long mapDate = gregCal.getTimeInMillis();
        tstCal.setTimeInMillis(mapDate);
        int uYear = tstCal.get(Calendar.YEAR);
        int uMon = tstCal.get(Calendar.MONTH) + 1;
        int uDay = tstCal.get(Calendar.DATE);
        if (uYear != guMap.uYear || uMon != guMap.uMon || uDay != guMap.uDay) {
            errln("For gregorian " + guMap.gYear + "-" + guMap.gMon + "-" + guMap.gDay + ", expect umalqura " + guMap.uYear + "-" + guMap.uMon + "-" + guMap.uDay + ", get " + uYear + "-" + uMon + "-" + uDay);
        }
    }
}
Also used : ULocale(android.icu.util.ULocale) GregorianCalendar(android.icu.util.GregorianCalendar) Date(java.util.Date) IOException(java.io.IOException) TimeZone(android.icu.util.TimeZone) SimpleDateFormat(android.icu.text.SimpleDateFormat) IslamicCalendar(android.icu.util.IslamicCalendar) Test(org.junit.Test)

Example 40 with TimeZone

use of android.icu.util.TimeZone in project j2objc by google.

the class DateFormat method parse.

/**
 * Parses a date/time string according to the given parse position.  For
 * example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date
 * that is equivalent to Date(837039928046).
 *
 * <p> By default, parsing is lenient: If the input is not in the form used
 * by this object's format method but can still be parsed as a date, then
 * the parse succeeds.  Clients may insist on strict adherence to the
 * format by calling setLenient(false).
 *
 * <p> Note that the normal date formats associated with some calendars - such
 * as the Chinese lunar calendar - do not specify enough fields to enable
 * dates to be parsed unambiguously. In the case of the Chinese lunar
 * calendar, while the year within the current 60-year cycle is specified,
 * the number of such cycles since the start date of the calendar (in the
 * ERA field of the Calendar object) is not normally part of the format,
 * and parsing may assume the wrong era. For cases such as this it is
 * recommended that clients parse using the parse method that takes a Calendar
 * with the Calendar passed in set to the current date, or to a date
 * within the era/cycle that should be assumed if absent in the format.
 *
 * @see #setLenient(boolean)
 *
 * @param text  The date/time string to be parsed
 *
 * @param pos   On input, the position at which to start parsing; on
 *              output, the position at which parsing terminated, or the
 *              start position if the parse failed.
 *
 * @return      A Date, or null if the input could not be parsed
 */
public Date parse(String text, ParsePosition pos) {
    Date result = null;
    int start = pos.getIndex();
    TimeZone tzsav = calendar.getTimeZone();
    calendar.clear();
    parse(text, calendar, pos);
    if (pos.getIndex() != start) {
        try {
            result = calendar.getTime();
        } catch (IllegalArgumentException e) {
            // This occurs if the calendar is non-lenient and there is
            // an out-of-range field.  We don't know which field was
            // illegal so we set the error index to the start.
            pos.setIndex(start);
            pos.setErrorIndex(start);
        }
    }
    // Restore TimeZone
    calendar.setTimeZone(tzsav);
    return result;
}
Also used : TimeZone(android.icu.util.TimeZone) Date(java.util.Date)

Aggregations

TimeZone (android.icu.util.TimeZone)125 Test (org.junit.Test)98 SimpleTimeZone (android.icu.util.SimpleTimeZone)76 Date (java.util.Date)63 GregorianCalendar (android.icu.util.GregorianCalendar)49 Calendar (android.icu.util.Calendar)42 BasicTimeZone (android.icu.util.BasicTimeZone)41 SimpleDateFormat (android.icu.text.SimpleDateFormat)36 ULocale (android.icu.util.ULocale)31 RuleBasedTimeZone (android.icu.util.RuleBasedTimeZone)24 VTimeZone (android.icu.util.VTimeZone)23 DateFormat (android.icu.text.DateFormat)19 JavaTimeZone (android.icu.impl.JavaTimeZone)18 NativeTimeZone (com.google.j2objc.util.NativeTimeZone)18 JapaneseCalendar (android.icu.util.JapaneseCalendar)15 FieldPosition (java.text.FieldPosition)15 BuddhistCalendar (android.icu.util.BuddhistCalendar)13 ParsePosition (java.text.ParsePosition)13 ChineseCalendar (android.icu.util.ChineseCalendar)12 ParseException (java.text.ParseException)12