When's the next (or previous) DST offset transition?
How can you tell programmatically when the next (or previous) DST (daylight saving time) offset transition will occur (has occurred)--other than by using a brute-force approach where one checks the offset of successive points in time, each one second later than the previous one? Few date/time libraries provide any support for such functionality (and many don't even provide support for real-world time zones where offsets change during the year according to a set of rules.)
Although it's possible to use Chronos to discover all the moments when a time zone's offset, name or abbreviation changes (and not just by the brute-force method mentioned above,) the bad news is that for a developer who casually uses Chronos to figure out how to code that functionality would probably require not only a bit of research, but also the writing of some non-trivial amount of new code.
So, the next release of Chronos (which is not yet available) will provide a simple, easy-to-use API for enumerating through all the moments when a time zone's offset changes, so that developers who use Chronos won't have to do as much research, and won't have to write anywhere near as much new new code, in order to find the next (or previous) offset transition for a time zone. Using this new API, the following list of every offset transition in the America/Los_Angeles time zone, from the very first one in 1883 until the arbitrarily chosen end-year of 2050, can easily be generated:1883-11-18T12:00:00-08:00 [1883-11-18T20:00:00Z] -07:52:58 -> -08:00 {-2717640000}
1918-03-31T03:00:00-07:00 [1918-03-31T10:00:00Z] -08:00 -> -07:00 {-1633269600}
1918-10-27T01:00:00-08:00 [1918-10-27T09:00:00Z] -07:00 -> -08:00 {-1615129200}
1919-03-30T03:00:00-07:00 [1919-03-30T10:00:00Z] -08:00 -> -07:00 {-1601820000}
1919-10-26T01:00:00-08:00 [1919-10-26T09:00:00Z] -07:00 -> -08:00 {-1583679600}
1942-02-09T03:00:00-07:00 [1942-02-09T10:00:00Z] -08:00 -> -07:00 {-880207200}
1945-08-14T16:00:00-07:00 [1945-08-14T23:00:00Z] -07:00 -> -07:00 {-769395600}
1945-09-30T01:00:00-08:00 [1945-09-30T09:00:00Z] -07:00 -> -08:00 {-765385200}
1948-03-14T03:00:00-07:00 [1948-03-14T10:00:00Z] -08:00 -> -07:00 {-687967200}
1949-01-01T01:00:00-08:00 [1949-01-01T09:00:00Z] -07:00 -> -08:00 {-662655600}
1950-04-30T03:00:00-07:00 [1950-04-30T10:00:00Z] -08:00 -> -07:00 {-620834400}
1950-09-24T01:00:00-08:00 [1950-09-24T09:00:00Z] -07:00 -> -08:00 {-608137200}
1951-04-29T03:00:00-07:00 [1951-04-29T10:00:00Z] -08:00 -> -07:00 {-589384800}
1951-09-30T01:00:00-08:00 [1951-09-30T09:00:00Z] -07:00 -> -08:00 {-576082800}
1952-04-27T03:00:00-07:00 [1952-04-27T10:00:00Z] -08:00 -> -07:00 {-557935200}
1952-09-28T01:00:00-08:00 [1952-09-28T09:00:00Z] -07:00 -> -08:00 {-544633200}
1953-04-26T03:00:00-07:00 [1953-04-26T10:00:00Z] -08:00 -> -07:00 {-526485600}
1953-09-27T01:00:00-08:00 [1953-09-27T09:00:00Z] -07:00 -> -08:00 {-513183600}
1954-04-25T03:00:00-07:00 [1954-04-25T10:00:00Z] -08:00 -> -07:00 {-495036000}
1954-09-26T01:00:00-08:00 [1954-09-26T09:00:00Z] -07:00 -> -08:00 {-481734000}
1955-04-24T03:00:00-07:00 [1955-04-24T10:00:00Z] -08:00 -> -07:00 {-463586400}
1955-09-25T01:00:00-08:00 [1955-09-25T09:00:00Z] -07:00 -> -08:00 {-450284400}
1956-04-29T03:00:00-07:00 [1956-04-29T10:00:00Z] -08:00 -> -07:00 {-431532000}
1956-09-30T01:00:00-08:00 [1956-09-30T09:00:00Z] -07:00 -> -08:00 {-418230000}
1957-04-28T03:00:00-07:00 [1957-04-28T10:00:00Z] -08:00 -> -07:00 {-400082400}
1957-09-29T01:00:00-08:00 [1957-09-29T09:00:00Z] -07:00 -> -08:00 {-386780400}
1958-04-27T03:00:00-07:00 [1958-04-27T10:00:00Z] -08:00 -> -07:00 {-368632800}
1958-09-28T01:00:00-08:00 [1958-09-28T09:00:00Z] -07:00 -> -08:00 {-355330800}
1959-04-26T03:00:00-07:00 [1959-04-26T10:00:00Z] -08:00 -> -07:00 {-337183200}
1959-09-27T01:00:00-08:00 [1959-09-27T09:00:00Z] -07:00 -> -08:00 {-323881200}
1960-04-24T03:00:00-07:00 [1960-04-24T10:00:00Z] -08:00 -> -07:00 {-305733600}
1960-09-25T01:00:00-08:00 [1960-09-25T09:00:00Z] -07:00 -> -08:00 {-292431600}
1961-04-30T03:00:00-07:00 [1961-04-30T10:00:00Z] -08:00 -> -07:00 {-273679200}
1961-09-24T01:00:00-08:00 [1961-09-24T09:00:00Z] -07:00 -> -08:00 {-260982000}
1962-04-29T03:00:00-07:00 [1962-04-29T10:00:00Z] -08:00 -> -07:00 {-242229600}
1962-10-28T01:00:00-08:00 [1962-10-28T09:00:00Z] -07:00 -> -08:00 {-226508400}
1963-04-28T03:00:00-07:00 [1963-04-28T10:00:00Z] -08:00 -> -07:00 {-210780000}
1963-10-27T01:00:00-08:00 [1963-10-27T09:00:00Z] -07:00 -> -08:00 {-195058800}
1964-04-26T03:00:00-07:00 [1964-04-26T10:00:00Z] -08:00 -> -07:00 {-179330400}
1964-10-25T01:00:00-08:00 [1964-10-25T09:00:00Z] -07:00 -> -08:00 {-163609200}
1965-04-25T03:00:00-07:00 [1965-04-25T10:00:00Z] -08:00 -> -07:00 {-147880800}
1965-10-31T01:00:00-08:00 [1965-10-31T09:00:00Z] -07:00 -> -08:00 {-131554800}
1966-04-24T03:00:00-07:00 [1966-04-24T10:00:00Z] -08:00 -> -07:00 {-116431200}
1966-10-30T01:00:00-08:00 [1966-10-30T09:00:00Z] -07:00 -> -08:00 {-100105200}
1967-04-30T03:00:00-07:00 [1967-04-30T10:00:00Z] -08:00 -> -07:00 {-84376800}
1967-10-29T01:00:00-08:00 [1967-10-29T09:00:00Z] -07:00 -> -08:00 {-68655600}
1968-04-28T03:00:00-07:00 [1968-04-28T10:00:00Z] -08:00 -> -07:00 {-52927200}
1968-10-27T01:00:00-08:00 [1968-10-27T09:00:00Z] -07:00 -> -08:00 {-37206000}
1969-04-27T03:00:00-07:00 [1969-04-27T10:00:00Z] -08:00 -> -07:00 {-21477600}
1969-10-26T01:00:00-08:00 [1969-10-26T09:00:00Z] -07:00 -> -08:00 {-5756400}
1970-04-26T03:00:00-07:00 [1970-04-26T10:00:00Z] -08:00 -> -07:00 {9972000}
1970-10-25T01:00:00-08:00 [1970-10-25T09:00:00Z] -07:00 -> -08:00 {25693200}
1971-04-25T03:00:00-07:00 [1971-04-25T10:00:00Z] -08:00 -> -07:00 {41421600}
1971-10-31T01:00:00-08:00 [1971-10-31T09:00:00Z] -07:00 -> -08:00 {57747600}
1972-04-30T03:00:00-07:00 [1972-04-30T10:00:00Z] -08:00 -> -07:00 {73476000}
1972-10-29T01:00:00-08:00 [1972-10-29T09:00:00Z] -07:00 -> -08:00 {89197200}
1973-04-29T03:00:00-07:00 [1973-04-29T10:00:00Z] -08:00 -> -07:00 {104925600}
1973-10-28T01:00:00-08:00 [1973-10-28T09:00:00Z] -07:00 -> -08:00 {120646800}
1974-01-06T03:00:00-07:00 [1974-01-06T10:00:00Z] -08:00 -> -07:00 {126698400}
1974-10-27T01:00:00-08:00 [1974-10-27T09:00:00Z] -07:00 -> -08:00 {152096400}
1975-02-23T03:00:00-07:00 [1975-02-23T10:00:00Z] -08:00 -> -07:00 {162381600}
1975-10-26T01:00:00-08:00 [1975-10-26T09:00:00Z] -07:00 -> -08:00 {183546000}
1976-04-25T03:00:00-07:00 [1976-04-25T10:00:00Z] -08:00 -> -07:00 {199274400}
1976-10-31T01:00:00-08:00 [1976-10-31T09:00:00Z] -07:00 -> -08:00 {215600400}
1977-04-24T03:00:00-07:00 [1977-04-24T10:00:00Z] -08:00 -> -07:00 {230724000}
1977-10-30T01:00:00-08:00 [1977-10-30T09:00:00Z] -07:00 -> -08:00 {247050000}
1978-04-30T03:00:00-07:00 [1978-04-30T10:00:00Z] -08:00 -> -07:00 {262778400}
1978-10-29T01:00:00-08:00 [1978-10-29T09:00:00Z] -07:00 -> -08:00 {278499600}
1979-04-29T03:00:00-07:00 [1979-04-29T10:00:00Z] -08:00 -> -07:00 {294228000}
1979-10-28T01:00:00-08:00 [1979-10-28T09:00:00Z] -07:00 -> -08:00 {309949200}
1980-04-27T03:00:00-07:00 [1980-04-27T10:00:00Z] -08:00 -> -07:00 {325677600}
1980-10-26T01:00:00-08:00 [1980-10-26T09:00:00Z] -07:00 -> -08:00 {341398800}
1981-04-26T03:00:00-07:00 [1981-04-26T10:00:00Z] -08:00 -> -07:00 {357127200}
1981-10-25T01:00:00-08:00 [1981-10-25T09:00:00Z] -07:00 -> -08:00 {372848400}
1982-04-25T03:00:00-07:00 [1982-04-25T10:00:00Z] -08:00 -> -07:00 {388576800}
1982-10-31T01:00:00-08:00 [1982-10-31T09:00:00Z] -07:00 -> -08:00 {404902800}
1983-04-24T03:00:00-07:00 [1983-04-24T10:00:00Z] -08:00 -> -07:00 {420026400}
1983-10-30T01:00:00-08:00 [1983-10-30T09:00:00Z] -07:00 -> -08:00 {436352400}
1984-04-29T03:00:00-07:00 [1984-04-29T10:00:00Z] -08:00 -> -07:00 {452080800}
1984-10-28T01:00:00-08:00 [1984-10-28T09:00:00Z] -07:00 -> -08:00 {467802000}
1985-04-28T03:00:00-07:00 [1985-04-28T10:00:00Z] -08:00 -> -07:00 {483530400}
1985-10-27T01:00:00-08:00 [1985-10-27T09:00:00Z] -07:00 -> -08:00 {499251600}
1986-04-27T03:00:00-07:00 [1986-04-27T10:00:00Z] -08:00 -> -07:00 {514980000}
1986-10-26T01:00:00-08:00 [1986-10-26T09:00:00Z] -07:00 -> -08:00 {530701200}
1987-04-05T03:00:00-07:00 [1987-04-05T10:00:00Z] -08:00 -> -07:00 {544615200}
1987-10-25T01:00:00-08:00 [1987-10-25T09:00:00Z] -07:00 -> -08:00 {562150800}
1988-04-03T03:00:00-07:00 [1988-04-03T10:00:00Z] -08:00 -> -07:00 {576064800}
1988-10-30T01:00:00-08:00 [1988-10-30T09:00:00Z] -07:00 -> -08:00 {594205200}
1989-04-02T03:00:00-07:00 [1989-04-02T10:00:00Z] -08:00 -> -07:00 {607514400}
1989-10-29T01:00:00-08:00 [1989-10-29T09:00:00Z] -07:00 -> -08:00 {625654800}
1990-04-01T03:00:00-07:00 [1990-04-01T10:00:00Z] -08:00 -> -07:00 {638964000}
1990-10-28T01:00:00-08:00 [1990-10-28T09:00:00Z] -07:00 -> -08:00 {657104400}
1991-04-07T03:00:00-07:00 [1991-04-07T10:00:00Z] -08:00 -> -07:00 {671018400}
1991-10-27T01:00:00-08:00 [1991-10-27T09:00:00Z] -07:00 -> -08:00 {688554000}
1992-04-05T03:00:00-07:00 [1992-04-05T10:00:00Z] -08:00 -> -07:00 {702468000}
1992-10-25T01:00:00-08:00 [1992-10-25T09:00:00Z] -07:00 -> -08:00 {720003600}
1993-04-04T03:00:00-07:00 [1993-04-04T10:00:00Z] -08:00 -> -07:00 {733917600}
1993-10-31T01:00:00-08:00 [1993-10-31T09:00:00Z] -07:00 -> -08:00 {752058000}
1994-04-03T03:00:00-07:00 [1994-04-03T10:00:00Z] -08:00 -> -07:00 {765367200}
1994-10-30T01:00:00-08:00 [1994-10-30T09:00:00Z] -07:00 -> -08:00 {783507600}
1995-04-02T03:00:00-07:00 [1995-04-02T10:00:00Z] -08:00 -> -07:00 {796816800}
1995-10-29T01:00:00-08:00 [1995-10-29T09:00:00Z] -07:00 -> -08:00 {814957200}
1996-04-07T03:00:00-07:00 [1996-04-07T10:00:00Z] -08:00 -> -07:00 {828871200}
1996-10-27T01:00:00-08:00 [1996-10-27T09:00:00Z] -07:00 -> -08:00 {846406800}
1997-04-06T03:00:00-07:00 [1997-04-06T10:00:00Z] -08:00 -> -07:00 {860320800}
1997-10-26T01:00:00-08:00 [1997-10-26T09:00:00Z] -07:00 -> -08:00 {877856400}
1998-04-05T03:00:00-07:00 [1998-04-05T10:00:00Z] -08:00 -> -07:00 {891770400}
1998-10-25T01:00:00-08:00 [1998-10-25T09:00:00Z] -07:00 -> -08:00 {909306000}
1999-04-04T03:00:00-07:00 [1999-04-04T10:00:00Z] -08:00 -> -07:00 {923220000}
1999-10-31T01:00:00-08:00 [1999-10-31T09:00:00Z] -07:00 -> -08:00 {941360400}
2000-04-02T03:00:00-07:00 [2000-04-02T10:00:00Z] -08:00 -> -07:00 {954669600}
2000-10-29T01:00:00-08:00 [2000-10-29T09:00:00Z] -07:00 -> -08:00 {972810000}
2001-04-01T03:00:00-07:00 [2001-04-01T10:00:00Z] -08:00 -> -07:00 {986119200}
2001-10-28T01:00:00-08:00 [2001-10-28T09:00:00Z] -07:00 -> -08:00 {1004259600}
2002-04-07T03:00:00-07:00 [2002-04-07T10:00:00Z] -08:00 -> -07:00 {1018173600}
2002-10-27T01:00:00-08:00 [2002-10-27T09:00:00Z] -07:00 -> -08:00 {1035709200}
2003-04-06T03:00:00-07:00 [2003-04-06T10:00:00Z] -08:00 -> -07:00 {1049623200}
2003-10-26T01:00:00-08:00 [2003-10-26T09:00:00Z] -07:00 -> -08:00 {1067158800}
2004-04-04T03:00:00-07:00 [2004-04-04T10:00:00Z] -08:00 -> -07:00 {1081072800}
2004-10-31T01:00:00-08:00 [2004-10-31T09:00:00Z] -07:00 -> -08:00 {1099213200}
2005-04-03T03:00:00-07:00 [2005-04-03T10:00:00Z] -08:00 -> -07:00 {1112522400}
2005-10-30T01:00:00-08:00 [2005-10-30T09:00:00Z] -07:00 -> -08:00 {1130662800}
2006-04-02T03:00:00-07:00 [2006-04-02T10:00:00Z] -08:00 -> -07:00 {1143972000}
2006-10-29T01:00:00-08:00 [2006-10-29T09:00:00Z] -07:00 -> -08:00 {1162112400}
2007-03-11T03:00:00-07:00 [2007-03-11T10:00:00Z] -08:00 -> -07:00 {1173607200}
2007-11-04T01:00:00-08:00 [2007-11-04T09:00:00Z] -07:00 -> -08:00 {1194166800}
2008-03-09T03:00:00-07:00 [2008-03-09T10:00:00Z] -08:00 -> -07:00 {1205056800}
2008-11-02T01:00:00-08:00 [2008-11-02T09:00:00Z] -07:00 -> -08:00 {1225616400}
2009-03-08T03:00:00-07:00 [2009-03-08T10:00:00Z] -08:00 -> -07:00 {1236506400}
2009-11-01T01:00:00-08:00 [2009-11-01T09:00:00Z] -07:00 -> -08:00 {1257066000}
2010-03-14T03:00:00-07:00 [2010-03-14T10:00:00Z] -08:00 -> -07:00 {1268560800}
2010-11-07T01:00:00-08:00 [2010-11-07T09:00:00Z] -07:00 -> -08:00 {1289120400}
2011-03-13T03:00:00-07:00 [2011-03-13T10:00:00Z] -08:00 -> -07:00 {1300010400}
2011-11-06T01:00:00-08:00 [2011-11-06T09:00:00Z] -07:00 -> -08:00 {1320570000}
2012-03-11T03:00:00-07:00 [2012-03-11T10:00:00Z] -08:00 -> -07:00 {1331460000}
2012-11-04T01:00:00-08:00 [2012-11-04T09:00:00Z] -07:00 -> -08:00 {1352019600}
2013-03-10T03:00:00-07:00 [2013-03-10T10:00:00Z] -08:00 -> -07:00 {1362909600}
2013-11-03T01:00:00-08:00 [2013-11-03T09:00:00Z] -07:00 -> -08:00 {1383469200}
2014-03-09T03:00:00-07:00 [2014-03-09T10:00:00Z] -08:00 -> -07:00 {1394359200}
2014-11-02T01:00:00-08:00 [2014-11-02T09:00:00Z] -07:00 -> -08:00 {1414918800}
2015-03-08T03:00:00-07:00 [2015-03-08T10:00:00Z] -08:00 -> -07:00 {1425808800}
2015-11-01T01:00:00-08:00 [2015-11-01T09:00:00Z] -07:00 -> -08:00 {1446368400}
2016-03-13T03:00:00-07:00 [2016-03-13T10:00:00Z] -08:00 -> -07:00 {1457863200}
2016-11-06T01:00:00-08:00 [2016-11-06T09:00:00Z] -07:00 -> -08:00 {1478422800}
2017-03-12T03:00:00-07:00 [2017-03-12T10:00:00Z] -08:00 -> -07:00 {1489312800}
2017-11-05T01:00:00-08:00 [2017-11-05T09:00:00Z] -07:00 -> -08:00 {1509872400}
2018-03-11T03:00:00-07:00 [2018-03-11T10:00:00Z] -08:00 -> -07:00 {1520762400}
2018-11-04T01:00:00-08:00 [2018-11-04T09:00:00Z] -07:00 -> -08:00 {1541322000}
2019-03-10T03:00:00-07:00 [2019-03-10T10:00:00Z] -08:00 -> -07:00 {1552212000}
2019-11-03T01:00:00-08:00 [2019-11-03T09:00:00Z] -07:00 -> -08:00 {1572771600}
2020-03-08T03:00:00-07:00 [2020-03-08T10:00:00Z] -08:00 -> -07:00 {1583661600}
2020-11-01T01:00:00-08:00 [2020-11-01T09:00:00Z] -07:00 -> -08:00 {1604221200}
2021-03-14T03:00:00-07:00 [2021-03-14T10:00:00Z] -08:00 -> -07:00 {1615716000}
2021-11-07T01:00:00-08:00 [2021-11-07T09:00:00Z] -07:00 -> -08:00 {1636275600}
2022-03-13T03:00:00-07:00 [2022-03-13T10:00:00Z] -08:00 -> -07:00 {1647165600}
2022-11-06T01:00:00-08:00 [2022-11-06T09:00:00Z] -07:00 -> -08:00 {1667725200}
2023-03-12T03:00:00-07:00 [2023-03-12T10:00:00Z] -08:00 -> -07:00 {1678615200}
2023-11-05T01:00:00-08:00 [2023-11-05T09:00:00Z] -07:00 -> -08:00 {1699174800}
2024-03-10T03:00:00-07:00 [2024-03-10T10:00:00Z] -08:00 -> -07:00 {1710064800}
2024-11-03T01:00:00-08:00 [2024-11-03T09:00:00Z] -07:00 -> -08:00 {1730624400}
2025-03-09T03:00:00-07:00 [2025-03-09T10:00:00Z] -08:00 -> -07:00 {1741514400}
2025-11-02T01:00:00-08:00 [2025-11-02T09:00:00Z] -07:00 -> -08:00 {1762074000}
2026-03-08T03:00:00-07:00 [2026-03-08T10:00:00Z] -08:00 -> -07:00 {1772964000}
2026-11-01T01:00:00-08:00 [2026-11-01T09:00:00Z] -07:00 -> -08:00 {1793523600}
2027-03-14T03:00:00-07:00 [2027-03-14T10:00:00Z] -08:00 -> -07:00 {1805018400}
2027-11-07T01:00:00-08:00 [2027-11-07T09:00:00Z] -07:00 -> -08:00 {1825578000}
2028-03-12T03:00:00-07:00 [2028-03-12T10:00:00Z] -08:00 -> -07:00 {1836468000}
2028-11-05T01:00:00-08:00 [2028-11-05T09:00:00Z] -07:00 -> -08:00 {1857027600}
2029-03-11T03:00:00-07:00 [2029-03-11T10:00:00Z] -08:00 -> -07:00 {1867917600}
2029-11-04T01:00:00-08:00 [2029-11-04T09:00:00Z] -07:00 -> -08:00 {1888477200}
2030-03-10T03:00:00-07:00 [2030-03-10T10:00:00Z] -08:00 -> -07:00 {1899367200}
2030-11-03T01:00:00-08:00 [2030-11-03T09:00:00Z] -07:00 -> -08:00 {1919926800}
2031-03-09T03:00:00-07:00 [2031-03-09T10:00:00Z] -08:00 -> -07:00 {1930816800}
2031-11-02T01:00:00-08:00 [2031-11-02T09:00:00Z] -07:00 -> -08:00 {1951376400}
2032-03-14T03:00:00-07:00 [2032-03-14T10:00:00Z] -08:00 -> -07:00 {1962871200}
2032-11-07T01:00:00-08:00 [2032-11-07T09:00:00Z] -07:00 -> -08:00 {1983430800}
2033-03-13T03:00:00-07:00 [2033-03-13T10:00:00Z] -08:00 -> -07:00 {1994320800}
2033-11-06T01:00:00-08:00 [2033-11-06T09:00:00Z] -07:00 -> -08:00 {2014880400}
2034-03-12T03:00:00-07:00 [2034-03-12T10:00:00Z] -08:00 -> -07:00 {2025770400}
2034-11-05T01:00:00-08:00 [2034-11-05T09:00:00Z] -07:00 -> -08:00 {2046330000}
2035-03-11T03:00:00-07:00 [2035-03-11T10:00:00Z] -08:00 -> -07:00 {2057220000}
2035-11-04T01:00:00-08:00 [2035-11-04T09:00:00Z] -07:00 -> -08:00 {2077779600}
2036-03-09T03:00:00-07:00 [2036-03-09T10:00:00Z] -08:00 -> -07:00 {2088669600}
2036-11-02T01:00:00-08:00 [2036-11-02T09:00:00Z] -07:00 -> -08:00 {2109229200}
2037-03-08T03:00:00-07:00 [2037-03-08T10:00:00Z] -08:00 -> -07:00 {2120119200}
2037-11-01T01:00:00-08:00 [2037-11-01T09:00:00Z] -07:00 -> -08:00 {2140678800}
2038-03-14T03:00:00-07:00 [2038-03-14T10:00:00Z] -08:00 -> -07:00 {2152173600}
2038-11-07T01:00:00-08:00 [2038-11-07T09:00:00Z] -07:00 -> -08:00 {2172733200}
2039-03-13T03:00:00-07:00 [2039-03-13T10:00:00Z] -08:00 -> -07:00 {2183623200}
2039-11-06T01:00:00-08:00 [2039-11-06T09:00:00Z] -07:00 -> -08:00 {2204182800}
2040-03-11T03:00:00-07:00 [2040-03-11T10:00:00Z] -08:00 -> -07:00 {2215072800}
2040-11-04T01:00:00-08:00 [2040-11-04T09:00:00Z] -07:00 -> -08:00 {2235632400}
2041-03-10T03:00:00-07:00 [2041-03-10T10:00:00Z] -08:00 -> -07:00 {2246522400}
2041-11-03T01:00:00-08:00 [2041-11-03T09:00:00Z] -07:00 -> -08:00 {2267082000}
2042-03-09T03:00:00-07:00 [2042-03-09T10:00:00Z] -08:00 -> -07:00 {2277972000}
2042-11-02T01:00:00-08:00 [2042-11-02T09:00:00Z] -07:00 -> -08:00 {2298531600}
2043-03-08T03:00:00-07:00 [2043-03-08T10:00:00Z] -08:00 -> -07:00 {2309421600}
2043-11-01T01:00:00-08:00 [2043-11-01T09:00:00Z] -07:00 -> -08:00 {2329981200}
2044-03-13T03:00:00-07:00 [2044-03-13T10:00:00Z] -08:00 -> -07:00 {2341476000}
2044-11-06T01:00:00-08:00 [2044-11-06T09:00:00Z] -07:00 -> -08:00 {2362035600}
2045-03-12T03:00:00-07:00 [2045-03-12T10:00:00Z] -08:00 -> -07:00 {2372925600}
2045-11-05T01:00:00-08:00 [2045-11-05T09:00:00Z] -07:00 -> -08:00 {2393485200}
2046-03-11T03:00:00-07:00 [2046-03-11T10:00:00Z] -08:00 -> -07:00 {2404375200}
2046-11-04T01:00:00-08:00 [2046-11-04T09:00:00Z] -07:00 -> -08:00 {2424934800}
2047-03-10T03:00:00-07:00 [2047-03-10T10:00:00Z] -08:00 -> -07:00 {2435824800}
2047-11-03T01:00:00-08:00 [2047-11-03T09:00:00Z] -07:00 -> -08:00 {2456384400}
2048-03-08T03:00:00-07:00 [2048-03-08T10:00:00Z] -08:00 -> -07:00 {2467274400}
2048-11-01T01:00:00-08:00 [2048-11-01T09:00:00Z] -07:00 -> -08:00 {2487834000}
2049-03-14T03:00:00-07:00 [2049-03-14T10:00:00Z] -08:00 -> -07:00 {2499328800}
2049-11-07T01:00:00-08:00 [2049-11-07T09:00:00Z] -07:00 -> -08:00 {2519888400}
2050-03-13T03:00:00-07:00 [2050-03-13T10:00:00Z] -08:00 -> -07:00 {2530778400}
2050-11-06T01:00:00-08:00 [2050-11-06T09:00:00Z] -07:00 -> -08:00 {2551338000}
Here's the Chronos code that generates the list of offset transitions:
| transition prevOffset printPolicy |
printPolicy := ChronosPrintPolicy iso8601.
transition := Timepoint year: 1881 day: 1 timeZone: #'America/Los_Angeles'.
[prevOffset := transition offset.
transition := transition nextOffsetTransitionDateAndTimeIfNone: [].
transition == nil or: [transition year > 2050]]
whileFalse:
[Transcript
cr; show: transition printString;
tab; show: ' ['; show: transition asUT % printPolicy; show: ']';
tab; show: prevOffset timeZoneOffsetPrintString;
show: ' -> '; show: transition offset timeZoneOffsetPrintString;
tab; show: ' {';
show: (transition secondsSince: ChronosSystemClock unixEpoch) printString;
show: '}'].
No comments:
Post a Comment