timezone 0.1.5 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.travis.yml +4 -0
  2. data/CHANGES.markdown +22 -0
  3. data/CONTRIBUTING.markdown +7 -0
  4. data/README.markdown +5 -1
  5. data/Rakefile +10 -0
  6. data/data/Africa/Cairo.json +0 -720
  7. data/data/Africa/Casablanca.json +18 -0
  8. data/data/Africa/Dar_es_Salaam.json +5 -5
  9. data/data/Africa/Juba.json +318 -0
  10. data/data/Africa/Kampala.json +5 -5
  11. data/data/Africa/Nairobi.json +5 -5
  12. data/data/America/Coral_Harbour.json +75 -0
  13. data/data/America/Creston.json +39 -0
  14. data/data/America/Goose_Bay.json +325 -316
  15. data/data/America/Havana.json +4 -4
  16. data/data/America/Juneau.json +6 -6
  17. data/data/America/Kralendijk.json +30 -0
  18. data/data/America/Lower_Princes.json +30 -0
  19. data/data/America/Metlakatla.json +345 -0
  20. data/data/America/North_Dakota/Beulah.json +1596 -0
  21. data/data/America/Resolute.json +313 -322
  22. data/data/America/Santiago.json +8 -8
  23. data/data/America/Sitka.json +1560 -0
  24. data/data/America/St_Johns.json +325 -316
  25. data/data/Asia/Anadyr.json +2 -713
  26. data/data/Asia/Hebron.json +876 -0
  27. data/data/Asia/Irkutsk.json +2 -713
  28. data/data/Asia/Istanbul.json +4 -4
  29. data/data/Asia/Kamchatka.json +2 -713
  30. data/data/Asia/Krasnoyarsk.json +2 -713
  31. data/data/Asia/Magadan.json +2 -713
  32. data/data/Asia/Novokuznetsk.json +2 -713
  33. data/data/Asia/Novosibirsk.json +2 -713
  34. data/data/Asia/Omsk.json +2 -713
  35. data/data/Asia/Sakhalin.json +2 -713
  36. data/data/Asia/Vladivostok.json +2 -713
  37. data/data/Asia/Yakutsk.json +2 -713
  38. data/data/Asia/Yekaterinburg.json +2 -713
  39. data/data/Atlantic/Stanley.json +0 -18
  40. data/data/Europe/Istanbul.json +4 -4
  41. data/data/Europe/Kaliningrad.json +2 -713
  42. data/data/Europe/Moscow.json +2 -713
  43. data/data/Europe/Samara.json +2 -713
  44. data/data/Europe/Volgograd.json +2 -713
  45. data/data/Pacific/Apia.json +32 -5
  46. data/data/Pacific/Chuuk.json +0 -0
  47. data/data/Pacific/Easter.json +8 -8
  48. data/data/Pacific/Fiji.json +4 -4
  49. data/data/Pacific/Honolulu.json +10 -19
  50. data/data/Pacific/Pohnpei.json +0 -0
  51. data/lib/timezone/rule.rb +30 -0
  52. data/lib/timezone/version.rb +1 -1
  53. data/lib/timezone/zone.rb +18 -1
  54. data/test/data/Helsinki_rules_without_timestamps.json +1017 -0
  55. data/test/rule_test.rb +42 -0
  56. data/test/timezone_test.rb +13 -10
  57. data/timezone.gemspec +3 -0
  58. metadata +54 -6
  59. data/data/LICENSE +0 -21
@@ -39,19 +39,46 @@
39
39
  {
40
40
  "_from": "2010-09-26T11:00:00Z",
41
41
  "from": 1285498800000,
42
- "_to": "2011-04-03T10:00:00Z",
43
- "to": 1301824800000,
42
+ "_to": "2011-04-02T14:00:00Z",
43
+ "to": 1301752800000,
44
44
  "dst": true,
45
45
  "offset": -36000,
46
46
  "name": "WSDT"
47
47
  },
48
48
  {
49
- "_from": "2011-04-03T10:00:00Z",
50
- "from": 1301824800000,
49
+ "_from": "2011-04-02T14:00:00Z",
50
+ "from": 1301752800000,
51
+ "_to": "2011-09-24T14:00:00Z",
52
+ "to": 1316872800000,
53
+ "dst": false,
54
+ "offset": -39600,
55
+ "name": "WST"
56
+ },
57
+ {
58
+ "_from": "2011-09-24T14:00:00Z",
59
+ "from": 1316872800000,
60
+ "_to": "2011-12-30T10:00:00Z",
61
+ "to": 1325239200000,
62
+ "dst": true,
63
+ "offset": -36000,
64
+ "name": "WSDT"
65
+ },
66
+ {
67
+ "_from": "2011-12-30T10:00:00Z",
68
+ "from": 1325239200000,
69
+ "_to": "2012-03-31T14:00:00Z",
70
+ "to": 1333202400000,
71
+ "dst": true,
72
+ "offset": 50400,
73
+ "name": "WSDT"
74
+ },
75
+ {
76
+ "_from": "2012-03-31T14:00:00Z",
77
+ "from": 1333202400000,
51
78
  "_to": "9999-12-31T23:59:59Z",
52
79
  "to": 253402300799000,
53
80
  "dst": false,
54
- "offset": -39600,
81
+ "offset": 46800,
55
82
  "name": "WST"
56
83
  }
57
84
  ]}
File without changes
@@ -804,24 +804,24 @@
804
804
  {
805
805
  "_from": "2010-10-10T04:00:00Z",
806
806
  "from": 1286683200000,
807
- "_to": "2011-03-13T03:00:00Z",
808
- "to": 1299985200000,
807
+ "_to": "2011-05-08T03:00:00Z",
808
+ "to": 1304823600000,
809
809
  "dst": true,
810
810
  "offset": -18000,
811
811
  "name": "EASST"
812
812
  },
813
813
  {
814
- "_from": "2011-03-13T03:00:00Z",
815
- "from": 1299985200000,
816
- "_to": "2011-10-09T04:00:00Z",
817
- "to": 1318132800000,
814
+ "_from": "2011-05-08T03:00:00Z",
815
+ "from": 1304823600000,
816
+ "_to": "2011-08-21T04:00:00Z",
817
+ "to": 1313899200000,
818
818
  "dst": false,
819
819
  "offset": -21600,
820
820
  "name": "EAST"
821
821
  },
822
822
  {
823
- "_from": "2011-10-09T04:00:00Z",
824
- "from": 1318132800000,
823
+ "_from": "2011-08-21T04:00:00Z",
824
+ "from": 1313899200000,
825
825
  "_to": "2012-03-11T03:00:00Z",
826
826
  "to": 1331434800000,
827
827
  "dst": true,
@@ -75,15 +75,15 @@
75
75
  {
76
76
  "_from": "2010-10-23T14:00:00Z",
77
77
  "from": 1287842400000,
78
- "_to": "2011-03-26T14:00:00Z",
79
- "to": 1301148000000,
78
+ "_to": "2011-03-05T14:00:00Z",
79
+ "to": 1299333600000,
80
80
  "dst": true,
81
81
  "offset": 46800,
82
82
  "name": "FJST"
83
83
  },
84
84
  {
85
- "_from": "2011-03-26T14:00:00Z",
86
- "from": 1301148000000,
85
+ "_from": "2011-03-05T14:00:00Z",
86
+ "from": 1299333600000,
87
87
  "_to": "9999-12-31T23:59:59Z",
88
88
  "to": 253402300799000,
89
89
  "dst": false,
@@ -3,15 +3,15 @@
3
3
  {
4
4
  "_from": "-9999-01-01T00:00:00Z",
5
5
  "from": -377711769600000,
6
- "_to": "1900-01-01T22:31:26Z",
7
- "to": -2208907714000,
6
+ "_to": "1896-01-13T22:31:26Z",
7
+ "to": -2334101314000,
8
8
  "dst": false,
9
9
  "offset": -37886,
10
10
  "name": "LMT"
11
11
  },
12
12
  {
13
- "_from": "1900-01-01T22:31:26Z",
14
- "from": -2208907714000,
13
+ "_from": "1896-01-13T22:31:26Z",
14
+ "from": -2334101314000,
15
15
  "_to": "1933-04-30T12:30:00Z",
16
16
  "to": -1157283000000,
17
17
  "dst": false,
@@ -21,38 +21,29 @@
21
21
  {
22
22
  "_from": "1933-04-30T12:30:00Z",
23
23
  "from": -1157283000000,
24
- "_to": "1933-05-21T11:30:00Z",
25
- "to": -1155472200000,
24
+ "_to": "1933-05-21T21:30:00Z",
25
+ "to": -1155436200000,
26
26
  "dst": true,
27
27
  "offset": -34200,
28
28
  "name": "HDT"
29
29
  },
30
30
  {
31
- "_from": "1933-05-21T11:30:00Z",
32
- "from": -1155472200000,
31
+ "_from": "1933-05-21T21:30:00Z",
32
+ "from": -1155436200000,
33
33
  "_to": "1942-02-09T12:30:00Z",
34
34
  "to": -880198200000,
35
35
  "dst": false,
36
36
  "offset": -37800,
37
- "name": "HT"
37
+ "name": "HST"
38
38
  },
39
39
  {
40
40
  "_from": "1942-02-09T12:30:00Z",
41
41
  "from": -880198200000,
42
- "_to": "1945-08-14T23:00:00Z",
43
- "to": -769395600000,
44
- "dst": true,
45
- "offset": -34200,
46
- "name": "HWT"
47
- },
48
- {
49
- "_from": "1945-08-14T23:00:00Z",
50
- "from": -769395600000,
51
42
  "_to": "1945-09-30T11:30:00Z",
52
43
  "to": -765376200000,
53
44
  "dst": true,
54
45
  "offset": -34200,
55
- "name": "HPT"
46
+ "name": "HDT"
56
47
  },
57
48
  {
58
49
  "_from": "1945-09-30T11:30:00Z",
File without changes
@@ -0,0 +1,30 @@
1
+ module Timezone
2
+ @@rules = {}
3
+ def self.rules ; @@rules ; end
4
+
5
+ Rule = Struct.new(:name, :from, :to, :type, :month, :day, :time, :save, :letter) do
6
+ def initialize(name, *args)
7
+ super.tap do |rule|
8
+ Timezone.rules[name] ||= []
9
+ Timezone.rules[name] << self
10
+ end
11
+ end
12
+
13
+ # Converts hours and minutes to seconds.
14
+ #
15
+ # Example: 1:00 # => 3600
16
+ def offset
17
+ @offset ||= save
18
+ .split(':')
19
+ .reverse
20
+ .each_with_index
21
+ .map{ |number,index| number.to_i*(60**(index+1)) }
22
+ .reduce(&:+)
23
+ end
24
+
25
+ # Does this rule have daylight savings time?
26
+ def dst?
27
+ letter == 'D'
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Timezone
2
- VERSION = "0.1.5"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/timezone/zone.rb CHANGED
@@ -114,7 +114,24 @@ module Timezone
114
114
 
115
115
  def rule_for_reference reference
116
116
  reference = reference.utc
117
- @rules.detect{ |rule| _parsetime(rule['_from']) <= reference && _parsetime(rule['_to']) > reference }
117
+ @rules.detect do |rule|
118
+ if rule['from'] && rule['to']
119
+ from = _read_timestamp(rule['from'])
120
+ to = _read_timestamp(rule['to'])
121
+ else
122
+ from = _parsetime(rule['_from'])
123
+ to = _parsetime(rule['_to'])
124
+ end
125
+ from <= reference && to > reference
126
+ end
127
+ end
128
+
129
+ def _read_timestamp timestamp #:nodoc:
130
+ begin
131
+ Time.at(timestamp.to_i / 1000.0)
132
+ rescue Exception => e
133
+ raise Timezone::Error::ParseTime, e.message
134
+ end
118
135
  end
119
136
 
120
137
  def timezone_id lat, lon #:nodoc:
@@ -0,0 +1,1017 @@
1
+ [
2
+ {
3
+ "_from": "-9999-01-01T00:00:00Z",
4
+ "_to": "1878-05-30T22:20:08Z",
5
+ "dst": false,
6
+ "offset": 5992,
7
+ "name": "LMT"
8
+ },
9
+ {
10
+ "_from": "1878-05-30T22:20:08Z",
11
+ "_to": "1921-04-30T22:20:08Z",
12
+ "dst": false,
13
+ "offset": 5992,
14
+ "name": "HMT"
15
+ },
16
+ {
17
+ "_from": "1921-04-30T22:20:08Z",
18
+ "_to": "1942-04-02T22:00:00Z",
19
+ "dst": false,
20
+ "offset": 7200,
21
+ "name": "EET"
22
+ },
23
+ {
24
+ "_from": "1942-04-02T22:00:00Z",
25
+ "_to": "1942-10-02T21:00:00Z",
26
+ "dst": true,
27
+ "offset": 10800,
28
+ "name": "EEST"
29
+ },
30
+ {
31
+ "_from": "1942-10-02T21:00:00Z",
32
+ "_to": "1981-03-29T00:00:00Z",
33
+ "dst": false,
34
+ "offset": 7200,
35
+ "name": "EET"
36
+ },
37
+ {
38
+ "_from": "1981-03-29T00:00:00Z",
39
+ "_to": "1981-09-27T00:00:00Z",
40
+ "dst": true,
41
+ "offset": 10800,
42
+ "name": "EEST"
43
+ },
44
+ {
45
+ "_from": "1981-09-27T00:00:00Z",
46
+ "_to": "1982-03-28T00:00:00Z",
47
+ "dst": false,
48
+ "offset": 7200,
49
+ "name": "EET"
50
+ },
51
+ {
52
+ "_from": "1982-03-28T00:00:00Z",
53
+ "_to": "1982-09-26T00:00:00Z",
54
+ "dst": true,
55
+ "offset": 10800,
56
+ "name": "EEST"
57
+ },
58
+ {
59
+ "_from": "1982-09-26T00:00:00Z",
60
+ "_to": "1983-03-27T01:00:00Z",
61
+ "dst": false,
62
+ "offset": 7200,
63
+ "name": "EET"
64
+ },
65
+ {
66
+ "_from": "1983-03-27T01:00:00Z",
67
+ "_to": "1983-09-25T01:00:00Z",
68
+ "dst": true,
69
+ "offset": 10800,
70
+ "name": "EEST"
71
+ },
72
+ {
73
+ "_from": "1983-09-25T01:00:00Z",
74
+ "_to": "1984-03-25T01:00:00Z",
75
+ "dst": false,
76
+ "offset": 7200,
77
+ "name": "EET"
78
+ },
79
+ {
80
+ "_from": "1984-03-25T01:00:00Z",
81
+ "_to": "1984-09-30T01:00:00Z",
82
+ "dst": true,
83
+ "offset": 10800,
84
+ "name": "EEST"
85
+ },
86
+ {
87
+ "_from": "1984-09-30T01:00:00Z",
88
+ "_to": "1985-03-31T01:00:00Z",
89
+ "dst": false,
90
+ "offset": 7200,
91
+ "name": "EET"
92
+ },
93
+ {
94
+ "_from": "1985-03-31T01:00:00Z",
95
+ "_to": "1985-09-29T01:00:00Z",
96
+ "dst": true,
97
+ "offset": 10800,
98
+ "name": "EEST"
99
+ },
100
+ {
101
+ "_from": "1985-09-29T01:00:00Z",
102
+ "_to": "1986-03-30T01:00:00Z",
103
+ "dst": false,
104
+ "offset": 7200,
105
+ "name": "EET"
106
+ },
107
+ {
108
+ "_from": "1986-03-30T01:00:00Z",
109
+ "_to": "1986-09-28T01:00:00Z",
110
+ "dst": true,
111
+ "offset": 10800,
112
+ "name": "EEST"
113
+ },
114
+ {
115
+ "_from": "1986-09-28T01:00:00Z",
116
+ "_to": "1987-03-29T01:00:00Z",
117
+ "dst": false,
118
+ "offset": 7200,
119
+ "name": "EET"
120
+ },
121
+ {
122
+ "_from": "1987-03-29T01:00:00Z",
123
+ "_to": "1987-09-27T01:00:00Z",
124
+ "dst": true,
125
+ "offset": 10800,
126
+ "name": "EEST"
127
+ },
128
+ {
129
+ "_from": "1987-09-27T01:00:00Z",
130
+ "_to": "1988-03-27T01:00:00Z",
131
+ "dst": false,
132
+ "offset": 7200,
133
+ "name": "EET"
134
+ },
135
+ {
136
+ "_from": "1988-03-27T01:00:00Z",
137
+ "_to": "1988-09-25T01:00:00Z",
138
+ "dst": true,
139
+ "offset": 10800,
140
+ "name": "EEST"
141
+ },
142
+ {
143
+ "_from": "1988-09-25T01:00:00Z",
144
+ "_to": "1989-03-26T01:00:00Z",
145
+ "dst": false,
146
+ "offset": 7200,
147
+ "name": "EET"
148
+ },
149
+ {
150
+ "_from": "1989-03-26T01:00:00Z",
151
+ "_to": "1989-09-24T01:00:00Z",
152
+ "dst": true,
153
+ "offset": 10800,
154
+ "name": "EEST"
155
+ },
156
+ {
157
+ "_from": "1989-09-24T01:00:00Z",
158
+ "_to": "1990-03-25T01:00:00Z",
159
+ "dst": false,
160
+ "offset": 7200,
161
+ "name": "EET"
162
+ },
163
+ {
164
+ "_from": "1990-03-25T01:00:00Z",
165
+ "_to": "1990-09-30T01:00:00Z",
166
+ "dst": true,
167
+ "offset": 10800,
168
+ "name": "EEST"
169
+ },
170
+ {
171
+ "_from": "1990-09-30T01:00:00Z",
172
+ "_to": "1991-03-31T01:00:00Z",
173
+ "dst": false,
174
+ "offset": 7200,
175
+ "name": "EET"
176
+ },
177
+ {
178
+ "_from": "1991-03-31T01:00:00Z",
179
+ "_to": "1991-09-29T01:00:00Z",
180
+ "dst": true,
181
+ "offset": 10800,
182
+ "name": "EEST"
183
+ },
184
+ {
185
+ "_from": "1991-09-29T01:00:00Z",
186
+ "_to": "1992-03-29T01:00:00Z",
187
+ "dst": false,
188
+ "offset": 7200,
189
+ "name": "EET"
190
+ },
191
+ {
192
+ "_from": "1992-03-29T01:00:00Z",
193
+ "_to": "1992-09-27T01:00:00Z",
194
+ "dst": true,
195
+ "offset": 10800,
196
+ "name": "EEST"
197
+ },
198
+ {
199
+ "_from": "1992-09-27T01:00:00Z",
200
+ "_to": "1993-03-28T01:00:00Z",
201
+ "dst": false,
202
+ "offset": 7200,
203
+ "name": "EET"
204
+ },
205
+ {
206
+ "_from": "1993-03-28T01:00:00Z",
207
+ "_to": "1993-09-26T01:00:00Z",
208
+ "dst": true,
209
+ "offset": 10800,
210
+ "name": "EEST"
211
+ },
212
+ {
213
+ "_from": "1993-09-26T01:00:00Z",
214
+ "_to": "1994-03-27T01:00:00Z",
215
+ "dst": false,
216
+ "offset": 7200,
217
+ "name": "EET"
218
+ },
219
+ {
220
+ "_from": "1994-03-27T01:00:00Z",
221
+ "_to": "1994-09-25T01:00:00Z",
222
+ "dst": true,
223
+ "offset": 10800,
224
+ "name": "EEST"
225
+ },
226
+ {
227
+ "_from": "1994-09-25T01:00:00Z",
228
+ "_to": "1995-03-26T01:00:00Z",
229
+ "dst": false,
230
+ "offset": 7200,
231
+ "name": "EET"
232
+ },
233
+ {
234
+ "_from": "1995-03-26T01:00:00Z",
235
+ "_to": "1995-09-24T01:00:00Z",
236
+ "dst": true,
237
+ "offset": 10800,
238
+ "name": "EEST"
239
+ },
240
+ {
241
+ "_from": "1995-09-24T01:00:00Z",
242
+ "_to": "1996-03-31T01:00:00Z",
243
+ "dst": false,
244
+ "offset": 7200,
245
+ "name": "EET"
246
+ },
247
+ {
248
+ "_from": "1996-03-31T01:00:00Z",
249
+ "_to": "1996-10-27T01:00:00Z",
250
+ "dst": true,
251
+ "offset": 10800,
252
+ "name": "EEST"
253
+ },
254
+ {
255
+ "_from": "1996-10-27T01:00:00Z",
256
+ "_to": "1997-03-30T01:00:00Z",
257
+ "dst": false,
258
+ "offset": 7200,
259
+ "name": "EET"
260
+ },
261
+ {
262
+ "_from": "1997-03-30T01:00:00Z",
263
+ "_to": "1997-10-26T01:00:00Z",
264
+ "dst": true,
265
+ "offset": 10800,
266
+ "name": "EEST"
267
+ },
268
+ {
269
+ "_from": "1997-10-26T01:00:00Z",
270
+ "_to": "1998-03-29T01:00:00Z",
271
+ "dst": false,
272
+ "offset": 7200,
273
+ "name": "EET"
274
+ },
275
+ {
276
+ "_from": "1998-03-29T01:00:00Z",
277
+ "_to": "1998-10-25T01:00:00Z",
278
+ "dst": true,
279
+ "offset": 10800,
280
+ "name": "EEST"
281
+ },
282
+ {
283
+ "_from": "1998-10-25T01:00:00Z",
284
+ "_to": "1999-03-28T01:00:00Z",
285
+ "dst": false,
286
+ "offset": 7200,
287
+ "name": "EET"
288
+ },
289
+ {
290
+ "_from": "1999-03-28T01:00:00Z",
291
+ "_to": "1999-10-31T01:00:00Z",
292
+ "dst": true,
293
+ "offset": 10800,
294
+ "name": "EEST"
295
+ },
296
+ {
297
+ "_from": "1999-10-31T01:00:00Z",
298
+ "_to": "2000-03-26T01:00:00Z",
299
+ "dst": false,
300
+ "offset": 7200,
301
+ "name": "EET"
302
+ },
303
+ {
304
+ "_from": "2000-03-26T01:00:00Z",
305
+ "_to": "2000-10-29T01:00:00Z",
306
+ "dst": true,
307
+ "offset": 10800,
308
+ "name": "EEST"
309
+ },
310
+ {
311
+ "_from": "2000-10-29T01:00:00Z",
312
+ "_to": "2001-03-25T01:00:00Z",
313
+ "dst": false,
314
+ "offset": 7200,
315
+ "name": "EET"
316
+ },
317
+ {
318
+ "_from": "2001-03-25T01:00:00Z",
319
+ "_to": "2001-10-28T01:00:00Z",
320
+ "dst": true,
321
+ "offset": 10800,
322
+ "name": "EEST"
323
+ },
324
+ {
325
+ "_from": "2001-10-28T01:00:00Z",
326
+ "_to": "2002-03-31T01:00:00Z",
327
+ "dst": false,
328
+ "offset": 7200,
329
+ "name": "EET"
330
+ },
331
+ {
332
+ "_from": "2002-03-31T01:00:00Z",
333
+ "_to": "2002-10-27T01:00:00Z",
334
+ "dst": true,
335
+ "offset": 10800,
336
+ "name": "EEST"
337
+ },
338
+ {
339
+ "_from": "2002-10-27T01:00:00Z",
340
+ "_to": "2003-03-30T01:00:00Z",
341
+ "dst": false,
342
+ "offset": 7200,
343
+ "name": "EET"
344
+ },
345
+ {
346
+ "_from": "2003-03-30T01:00:00Z",
347
+ "_to": "2003-10-26T01:00:00Z",
348
+ "dst": true,
349
+ "offset": 10800,
350
+ "name": "EEST"
351
+ },
352
+ {
353
+ "_from": "2003-10-26T01:00:00Z",
354
+ "_to": "2004-03-28T01:00:00Z",
355
+ "dst": false,
356
+ "offset": 7200,
357
+ "name": "EET"
358
+ },
359
+ {
360
+ "_from": "2004-03-28T01:00:00Z",
361
+ "_to": "2004-10-31T01:00:00Z",
362
+ "dst": true,
363
+ "offset": 10800,
364
+ "name": "EEST"
365
+ },
366
+ {
367
+ "_from": "2004-10-31T01:00:00Z",
368
+ "_to": "2005-03-27T01:00:00Z",
369
+ "dst": false,
370
+ "offset": 7200,
371
+ "name": "EET"
372
+ },
373
+ {
374
+ "_from": "2005-03-27T01:00:00Z",
375
+ "_to": "2005-10-30T01:00:00Z",
376
+ "dst": true,
377
+ "offset": 10800,
378
+ "name": "EEST"
379
+ },
380
+ {
381
+ "_from": "2005-10-30T01:00:00Z",
382
+ "_to": "2006-03-26T01:00:00Z",
383
+ "dst": false,
384
+ "offset": 7200,
385
+ "name": "EET"
386
+ },
387
+ {
388
+ "_from": "2006-03-26T01:00:00Z",
389
+ "_to": "2006-10-29T01:00:00Z",
390
+ "dst": true,
391
+ "offset": 10800,
392
+ "name": "EEST"
393
+ },
394
+ {
395
+ "_from": "2006-10-29T01:00:00Z",
396
+ "_to": "2007-03-25T01:00:00Z",
397
+ "dst": false,
398
+ "offset": 7200,
399
+ "name": "EET"
400
+ },
401
+ {
402
+ "_from": "2007-03-25T01:00:00Z",
403
+ "_to": "2007-10-28T01:00:00Z",
404
+ "dst": true,
405
+ "offset": 10800,
406
+ "name": "EEST"
407
+ },
408
+ {
409
+ "_from": "2007-10-28T01:00:00Z",
410
+ "_to": "2008-03-30T01:00:00Z",
411
+ "dst": false,
412
+ "offset": 7200,
413
+ "name": "EET"
414
+ },
415
+ {
416
+ "_from": "2008-03-30T01:00:00Z",
417
+ "_to": "2008-10-26T01:00:00Z",
418
+ "dst": true,
419
+ "offset": 10800,
420
+ "name": "EEST"
421
+ },
422
+ {
423
+ "_from": "2008-10-26T01:00:00Z",
424
+ "_to": "2009-03-29T01:00:00Z",
425
+ "dst": false,
426
+ "offset": 7200,
427
+ "name": "EET"
428
+ },
429
+ {
430
+ "_from": "2009-03-29T01:00:00Z",
431
+ "_to": "2009-10-25T01:00:00Z",
432
+ "dst": true,
433
+ "offset": 10800,
434
+ "name": "EEST"
435
+ },
436
+ {
437
+ "_from": "2009-10-25T01:00:00Z",
438
+ "_to": "2010-03-28T01:00:00Z",
439
+ "dst": false,
440
+ "offset": 7200,
441
+ "name": "EET"
442
+ },
443
+ {
444
+ "_from": "2010-03-28T01:00:00Z",
445
+ "_to": "2010-10-31T01:00:00Z",
446
+ "dst": true,
447
+ "offset": 10800,
448
+ "name": "EEST"
449
+ },
450
+ {
451
+ "_from": "2010-10-31T01:00:00Z",
452
+ "_to": "2011-03-27T01:00:00Z",
453
+ "dst": false,
454
+ "offset": 7200,
455
+ "name": "EET"
456
+ },
457
+ {
458
+ "_from": "2011-03-27T01:00:00Z",
459
+ "_to": "2011-10-30T01:00:00Z",
460
+ "dst": true,
461
+ "offset": 10800,
462
+ "name": "EEST"
463
+ },
464
+ {
465
+ "_from": "2011-10-30T01:00:00Z",
466
+ "_to": "2012-03-25T01:00:00Z",
467
+ "dst": false,
468
+ "offset": 7200,
469
+ "name": "EET"
470
+ },
471
+ {
472
+ "_from": "2012-03-25T01:00:00Z",
473
+ "_to": "2012-10-28T01:00:00Z",
474
+ "dst": true,
475
+ "offset": 10800,
476
+ "name": "EEST"
477
+ },
478
+ {
479
+ "_from": "2012-10-28T01:00:00Z",
480
+ "_to": "2013-03-31T01:00:00Z",
481
+ "dst": false,
482
+ "offset": 7200,
483
+ "name": "EET"
484
+ },
485
+ {
486
+ "_from": "2013-03-31T01:00:00Z",
487
+ "_to": "2013-10-27T01:00:00Z",
488
+ "dst": true,
489
+ "offset": 10800,
490
+ "name": "EEST"
491
+ },
492
+ {
493
+ "_from": "2013-10-27T01:00:00Z",
494
+ "_to": "2014-03-30T01:00:00Z",
495
+ "dst": false,
496
+ "offset": 7200,
497
+ "name": "EET"
498
+ },
499
+ {
500
+ "_from": "2014-03-30T01:00:00Z",
501
+ "_to": "2014-10-26T01:00:00Z",
502
+ "dst": true,
503
+ "offset": 10800,
504
+ "name": "EEST"
505
+ },
506
+ {
507
+ "_from": "2014-10-26T01:00:00Z",
508
+ "_to": "2015-03-29T01:00:00Z",
509
+ "dst": false,
510
+ "offset": 7200,
511
+ "name": "EET"
512
+ },
513
+ {
514
+ "_from": "2015-03-29T01:00:00Z",
515
+ "_to": "2015-10-25T01:00:00Z",
516
+ "dst": true,
517
+ "offset": 10800,
518
+ "name": "EEST"
519
+ },
520
+ {
521
+ "_from": "2015-10-25T01:00:00Z",
522
+ "_to": "2016-03-27T01:00:00Z",
523
+ "dst": false,
524
+ "offset": 7200,
525
+ "name": "EET"
526
+ },
527
+ {
528
+ "_from": "2016-03-27T01:00:00Z",
529
+ "_to": "2016-10-30T01:00:00Z",
530
+ "dst": true,
531
+ "offset": 10800,
532
+ "name": "EEST"
533
+ },
534
+ {
535
+ "_from": "2016-10-30T01:00:00Z",
536
+ "_to": "2017-03-26T01:00:00Z",
537
+ "dst": false,
538
+ "offset": 7200,
539
+ "name": "EET"
540
+ },
541
+ {
542
+ "_from": "2017-03-26T01:00:00Z",
543
+ "_to": "2017-10-29T01:00:00Z",
544
+ "dst": true,
545
+ "offset": 10800,
546
+ "name": "EEST"
547
+ },
548
+ {
549
+ "_from": "2017-10-29T01:00:00Z",
550
+ "_to": "2018-03-25T01:00:00Z",
551
+ "dst": false,
552
+ "offset": 7200,
553
+ "name": "EET"
554
+ },
555
+ {
556
+ "_from": "2018-03-25T01:00:00Z",
557
+ "_to": "2018-10-28T01:00:00Z",
558
+ "dst": true,
559
+ "offset": 10800,
560
+ "name": "EEST"
561
+ },
562
+ {
563
+ "_from": "2018-10-28T01:00:00Z",
564
+ "_to": "2019-03-31T01:00:00Z",
565
+ "dst": false,
566
+ "offset": 7200,
567
+ "name": "EET"
568
+ },
569
+ {
570
+ "_from": "2019-03-31T01:00:00Z",
571
+ "_to": "2019-10-27T01:00:00Z",
572
+ "dst": true,
573
+ "offset": 10800,
574
+ "name": "EEST"
575
+ },
576
+ {
577
+ "_from": "2019-10-27T01:00:00Z",
578
+ "_to": "2020-03-29T01:00:00Z",
579
+ "dst": false,
580
+ "offset": 7200,
581
+ "name": "EET"
582
+ },
583
+ {
584
+ "_from": "2020-03-29T01:00:00Z",
585
+ "_to": "2020-10-25T01:00:00Z",
586
+ "dst": true,
587
+ "offset": 10800,
588
+ "name": "EEST"
589
+ },
590
+ {
591
+ "_from": "2020-10-25T01:00:00Z",
592
+ "_to": "2021-03-28T01:00:00Z",
593
+ "dst": false,
594
+ "offset": 7200,
595
+ "name": "EET"
596
+ },
597
+ {
598
+ "_from": "2021-03-28T01:00:00Z",
599
+ "_to": "2021-10-31T01:00:00Z",
600
+ "dst": true,
601
+ "offset": 10800,
602
+ "name": "EEST"
603
+ },
604
+ {
605
+ "_from": "2021-10-31T01:00:00Z",
606
+ "_to": "2022-03-27T01:00:00Z",
607
+ "dst": false,
608
+ "offset": 7200,
609
+ "name": "EET"
610
+ },
611
+ {
612
+ "_from": "2022-03-27T01:00:00Z",
613
+ "_to": "2022-10-30T01:00:00Z",
614
+ "dst": true,
615
+ "offset": 10800,
616
+ "name": "EEST"
617
+ },
618
+ {
619
+ "_from": "2022-10-30T01:00:00Z",
620
+ "_to": "2023-03-26T01:00:00Z",
621
+ "dst": false,
622
+ "offset": 7200,
623
+ "name": "EET"
624
+ },
625
+ {
626
+ "_from": "2023-03-26T01:00:00Z",
627
+ "_to": "2023-10-29T01:00:00Z",
628
+ "dst": true,
629
+ "offset": 10800,
630
+ "name": "EEST"
631
+ },
632
+ {
633
+ "_from": "2023-10-29T01:00:00Z",
634
+ "_to": "2024-03-31T01:00:00Z",
635
+ "dst": false,
636
+ "offset": 7200,
637
+ "name": "EET"
638
+ },
639
+ {
640
+ "_from": "2024-03-31T01:00:00Z",
641
+ "_to": "2024-10-27T01:00:00Z",
642
+ "dst": true,
643
+ "offset": 10800,
644
+ "name": "EEST"
645
+ },
646
+ {
647
+ "_from": "2024-10-27T01:00:00Z",
648
+ "_to": "2025-03-30T01:00:00Z",
649
+ "dst": false,
650
+ "offset": 7200,
651
+ "name": "EET"
652
+ },
653
+ {
654
+ "_from": "2025-03-30T01:00:00Z",
655
+ "_to": "2025-10-26T01:00:00Z",
656
+ "dst": true,
657
+ "offset": 10800,
658
+ "name": "EEST"
659
+ },
660
+ {
661
+ "_from": "2025-10-26T01:00:00Z",
662
+ "_to": "2026-03-29T01:00:00Z",
663
+ "dst": false,
664
+ "offset": 7200,
665
+ "name": "EET"
666
+ },
667
+ {
668
+ "_from": "2026-03-29T01:00:00Z",
669
+ "_to": "2026-10-25T01:00:00Z",
670
+ "dst": true,
671
+ "offset": 10800,
672
+ "name": "EEST"
673
+ },
674
+ {
675
+ "_from": "2026-10-25T01:00:00Z",
676
+ "_to": "2027-03-28T01:00:00Z",
677
+ "dst": false,
678
+ "offset": 7200,
679
+ "name": "EET"
680
+ },
681
+ {
682
+ "_from": "2027-03-28T01:00:00Z",
683
+ "_to": "2027-10-31T01:00:00Z",
684
+ "dst": true,
685
+ "offset": 10800,
686
+ "name": "EEST"
687
+ },
688
+ {
689
+ "_from": "2027-10-31T01:00:00Z",
690
+ "_to": "2028-03-26T01:00:00Z",
691
+ "dst": false,
692
+ "offset": 7200,
693
+ "name": "EET"
694
+ },
695
+ {
696
+ "_from": "2028-03-26T01:00:00Z",
697
+ "_to": "2028-10-29T01:00:00Z",
698
+ "dst": true,
699
+ "offset": 10800,
700
+ "name": "EEST"
701
+ },
702
+ {
703
+ "_from": "2028-10-29T01:00:00Z",
704
+ "_to": "2029-03-25T01:00:00Z",
705
+ "dst": false,
706
+ "offset": 7200,
707
+ "name": "EET"
708
+ },
709
+ {
710
+ "_from": "2029-03-25T01:00:00Z",
711
+ "_to": "2029-10-28T01:00:00Z",
712
+ "dst": true,
713
+ "offset": 10800,
714
+ "name": "EEST"
715
+ },
716
+ {
717
+ "_from": "2029-10-28T01:00:00Z",
718
+ "_to": "2030-03-31T01:00:00Z",
719
+ "dst": false,
720
+ "offset": 7200,
721
+ "name": "EET"
722
+ },
723
+ {
724
+ "_from": "2030-03-31T01:00:00Z",
725
+ "_to": "2030-10-27T01:00:00Z",
726
+ "dst": true,
727
+ "offset": 10800,
728
+ "name": "EEST"
729
+ },
730
+ {
731
+ "_from": "2030-10-27T01:00:00Z",
732
+ "_to": "2031-03-30T01:00:00Z",
733
+ "dst": false,
734
+ "offset": 7200,
735
+ "name": "EET"
736
+ },
737
+ {
738
+ "_from": "2031-03-30T01:00:00Z",
739
+ "_to": "2031-10-26T01:00:00Z",
740
+ "dst": true,
741
+ "offset": 10800,
742
+ "name": "EEST"
743
+ },
744
+ {
745
+ "_from": "2031-10-26T01:00:00Z",
746
+ "_to": "2032-03-28T01:00:00Z",
747
+ "dst": false,
748
+ "offset": 7200,
749
+ "name": "EET"
750
+ },
751
+ {
752
+ "_from": "2032-03-28T01:00:00Z",
753
+ "_to": "2032-10-31T01:00:00Z",
754
+ "dst": true,
755
+ "offset": 10800,
756
+ "name": "EEST"
757
+ },
758
+ {
759
+ "_from": "2032-10-31T01:00:00Z",
760
+ "_to": "2033-03-27T01:00:00Z",
761
+ "dst": false,
762
+ "offset": 7200,
763
+ "name": "EET"
764
+ },
765
+ {
766
+ "_from": "2033-03-27T01:00:00Z",
767
+ "_to": "2033-10-30T01:00:00Z",
768
+ "dst": true,
769
+ "offset": 10800,
770
+ "name": "EEST"
771
+ },
772
+ {
773
+ "_from": "2033-10-30T01:00:00Z",
774
+ "_to": "2034-03-26T01:00:00Z",
775
+ "dst": false,
776
+ "offset": 7200,
777
+ "name": "EET"
778
+ },
779
+ {
780
+ "_from": "2034-03-26T01:00:00Z",
781
+ "_to": "2034-10-29T01:00:00Z",
782
+ "dst": true,
783
+ "offset": 10800,
784
+ "name": "EEST"
785
+ },
786
+ {
787
+ "_from": "2034-10-29T01:00:00Z",
788
+ "_to": "2035-03-25T01:00:00Z",
789
+ "dst": false,
790
+ "offset": 7200,
791
+ "name": "EET"
792
+ },
793
+ {
794
+ "_from": "2035-03-25T01:00:00Z",
795
+ "_to": "2035-10-28T01:00:00Z",
796
+ "dst": true,
797
+ "offset": 10800,
798
+ "name": "EEST"
799
+ },
800
+ {
801
+ "_from": "2035-10-28T01:00:00Z",
802
+ "_to": "2036-03-30T01:00:00Z",
803
+ "dst": false,
804
+ "offset": 7200,
805
+ "name": "EET"
806
+ },
807
+ {
808
+ "_from": "2036-03-30T01:00:00Z",
809
+ "_to": "2036-10-26T01:00:00Z",
810
+ "dst": true,
811
+ "offset": 10800,
812
+ "name": "EEST"
813
+ },
814
+ {
815
+ "_from": "2036-10-26T01:00:00Z",
816
+ "_to": "2037-03-29T01:00:00Z",
817
+ "dst": false,
818
+ "offset": 7200,
819
+ "name": "EET"
820
+ },
821
+ {
822
+ "_from": "2037-03-29T01:00:00Z",
823
+ "_to": "2037-10-25T01:00:00Z",
824
+ "dst": true,
825
+ "offset": 10800,
826
+ "name": "EEST"
827
+ },
828
+ {
829
+ "_from": "2037-10-25T01:00:00Z",
830
+ "_to": "2038-03-28T01:00:00Z",
831
+ "dst": false,
832
+ "offset": 7200,
833
+ "name": "EET"
834
+ },
835
+ {
836
+ "_from": "2038-03-28T01:00:00Z",
837
+ "_to": "2038-10-31T01:00:00Z",
838
+ "dst": true,
839
+ "offset": 10800,
840
+ "name": "EEST"
841
+ },
842
+ {
843
+ "_from": "2038-10-31T01:00:00Z",
844
+ "_to": "2039-03-27T01:00:00Z",
845
+ "dst": false,
846
+ "offset": 7200,
847
+ "name": "EET"
848
+ },
849
+ {
850
+ "_from": "2039-03-27T01:00:00Z",
851
+ "_to": "2039-10-30T01:00:00Z",
852
+ "dst": true,
853
+ "offset": 10800,
854
+ "name": "EEST"
855
+ },
856
+ {
857
+ "_from": "2039-10-30T01:00:00Z",
858
+ "_to": "2040-03-25T01:00:00Z",
859
+ "dst": false,
860
+ "offset": 7200,
861
+ "name": "EET"
862
+ },
863
+ {
864
+ "_from": "2040-03-25T01:00:00Z",
865
+ "_to": "2040-10-28T01:00:00Z",
866
+ "dst": true,
867
+ "offset": 10800,
868
+ "name": "EEST"
869
+ },
870
+ {
871
+ "_from": "2040-10-28T01:00:00Z",
872
+ "_to": "2041-03-31T01:00:00Z",
873
+ "dst": false,
874
+ "offset": 7200,
875
+ "name": "EET"
876
+ },
877
+ {
878
+ "_from": "2041-03-31T01:00:00Z",
879
+ "_to": "2041-10-27T01:00:00Z",
880
+ "dst": true,
881
+ "offset": 10800,
882
+ "name": "EEST"
883
+ },
884
+ {
885
+ "_from": "2041-10-27T01:00:00Z",
886
+ "_to": "2042-03-30T01:00:00Z",
887
+ "dst": false,
888
+ "offset": 7200,
889
+ "name": "EET"
890
+ },
891
+ {
892
+ "_from": "2042-03-30T01:00:00Z",
893
+ "_to": "2042-10-26T01:00:00Z",
894
+ "dst": true,
895
+ "offset": 10800,
896
+ "name": "EEST"
897
+ },
898
+ {
899
+ "_from": "2042-10-26T01:00:00Z",
900
+ "_to": "2043-03-29T01:00:00Z",
901
+ "dst": false,
902
+ "offset": 7200,
903
+ "name": "EET"
904
+ },
905
+ {
906
+ "_from": "2043-03-29T01:00:00Z",
907
+ "_to": "2043-10-25T01:00:00Z",
908
+ "dst": true,
909
+ "offset": 10800,
910
+ "name": "EEST"
911
+ },
912
+ {
913
+ "_from": "2043-10-25T01:00:00Z",
914
+ "_to": "2044-03-27T01:00:00Z",
915
+ "dst": false,
916
+ "offset": 7200,
917
+ "name": "EET"
918
+ },
919
+ {
920
+ "_from": "2044-03-27T01:00:00Z",
921
+ "_to": "2044-10-30T01:00:00Z",
922
+ "dst": true,
923
+ "offset": 10800,
924
+ "name": "EEST"
925
+ },
926
+ {
927
+ "_from": "2044-10-30T01:00:00Z",
928
+ "_to": "2045-03-26T01:00:00Z",
929
+ "dst": false,
930
+ "offset": 7200,
931
+ "name": "EET"
932
+ },
933
+ {
934
+ "_from": "2045-03-26T01:00:00Z",
935
+ "_to": "2045-10-29T01:00:00Z",
936
+ "dst": true,
937
+ "offset": 10800,
938
+ "name": "EEST"
939
+ },
940
+ {
941
+ "_from": "2045-10-29T01:00:00Z",
942
+ "_to": "2046-03-25T01:00:00Z",
943
+ "dst": false,
944
+ "offset": 7200,
945
+ "name": "EET"
946
+ },
947
+ {
948
+ "_from": "2046-03-25T01:00:00Z",
949
+ "_to": "2046-10-28T01:00:00Z",
950
+ "dst": true,
951
+ "offset": 10800,
952
+ "name": "EEST"
953
+ },
954
+ {
955
+ "_from": "2046-10-28T01:00:00Z",
956
+ "_to": "2047-03-31T01:00:00Z",
957
+ "dst": false,
958
+ "offset": 7200,
959
+ "name": "EET"
960
+ },
961
+ {
962
+ "_from": "2047-03-31T01:00:00Z",
963
+ "_to": "2047-10-27T01:00:00Z",
964
+ "dst": true,
965
+ "offset": 10800,
966
+ "name": "EEST"
967
+ },
968
+ {
969
+ "_from": "2047-10-27T01:00:00Z",
970
+ "_to": "2048-03-29T01:00:00Z",
971
+ "dst": false,
972
+ "offset": 7200,
973
+ "name": "EET"
974
+ },
975
+ {
976
+ "_from": "2048-03-29T01:00:00Z",
977
+ "_to": "2048-10-25T01:00:00Z",
978
+ "dst": true,
979
+ "offset": 10800,
980
+ "name": "EEST"
981
+ },
982
+ {
983
+ "_from": "2048-10-25T01:00:00Z",
984
+ "_to": "2049-03-28T01:00:00Z",
985
+ "dst": false,
986
+ "offset": 7200,
987
+ "name": "EET"
988
+ },
989
+ {
990
+ "_from": "2049-03-28T01:00:00Z",
991
+ "_to": "2049-10-31T01:00:00Z",
992
+ "dst": true,
993
+ "offset": 10800,
994
+ "name": "EEST"
995
+ },
996
+ {
997
+ "_from": "2049-10-31T01:00:00Z",
998
+ "_to": "2050-03-27T01:00:00Z",
999
+ "dst": false,
1000
+ "offset": 7200,
1001
+ "name": "EET"
1002
+ },
1003
+ {
1004
+ "_from": "2050-03-27T01:00:00Z",
1005
+ "_to": "2050-10-30T01:00:00Z",
1006
+ "dst": true,
1007
+ "offset": 10800,
1008
+ "name": "EEST"
1009
+ },
1010
+ {
1011
+ "_from": "2050-10-30T01:00:00Z",
1012
+ "_to": "9999-12-31T23:59:59Z",
1013
+ "dst": false,
1014
+ "offset": 7200,
1015
+ "name": "EET"
1016
+ }
1017
+ ]