@@ -250,6 +250,129 @@ def test_with_float(self):
250250 formatted_string = dates .format_datetime (epoch , format = 'long' , locale = 'en_US' )
251251 self .assertEqual (u'April 1, 2012 at 3:30:29 PM +0000' , formatted_string )
252252
253+ def test_timezone_formats (self ):
254+ dt = datetime (2016 , 1 , 13 , 7 , 8 , 35 )
255+ tz = dates .get_timezone ('America/Los_Angeles' )
256+ dt = tz .localize (dt )
257+ formatted_string = dates .format_datetime (dt , 'z' , locale = 'en' )
258+ self .assertEqual (u'PST' , formatted_string )
259+ formatted_string = dates .format_datetime (dt , 'zz' , locale = 'en' )
260+ self .assertEqual (u'PST' , formatted_string )
261+ formatted_string = dates .format_datetime (dt , 'zzz' , locale = 'en' )
262+ self .assertEqual (u'PST' , formatted_string )
263+ formatted_string = dates .format_datetime (dt , 'zzzz' , locale = 'en' )
264+ self .assertEqual (u'Pacific Standard Time' , formatted_string )
265+ formatted_string = dates .format_datetime (dt , 'Z' , locale = 'en' )
266+ self .assertEqual (u'-0800' , formatted_string )
267+ formatted_string = dates .format_datetime (dt , 'ZZ' , locale = 'en' )
268+ self .assertEqual (u'-0800' , formatted_string )
269+ formatted_string = dates .format_datetime (dt , 'ZZZ' , locale = 'en' )
270+ self .assertEqual (u'-0800' , formatted_string )
271+ formatted_string = dates .format_datetime (dt , 'ZZZZ' , locale = 'en' )
272+ self .assertEqual (u'GMT-08:00' , formatted_string )
273+ formatted_string = dates .format_datetime (dt , 'ZZZZZ' , locale = 'en' )
274+ self .assertEqual (u'-08:00' , formatted_string )
275+ formatted_string = dates .format_datetime (dt , 'OOOO' , locale = 'en' )
276+ self .assertEqual (u'GMT-08:00' , formatted_string )
277+ formatted_string = dates .format_datetime (dt , 'VV' , locale = 'en' )
278+ self .assertEqual (u'America/Los_Angeles' , formatted_string )
279+ formatted_string = dates .format_datetime (dt , 'VVV' , locale = 'en' )
280+ self .assertEqual (u'Los Angeles' , formatted_string )
281+ formatted_string = dates .format_datetime (dt , 'X' , locale = 'en' )
282+ self .assertEqual (u'-08' , formatted_string )
283+ formatted_string = dates .format_datetime (dt , 'XX' , locale = 'en' )
284+ self .assertEqual (u'-0800' , formatted_string )
285+ formatted_string = dates .format_datetime (dt , 'XXX' , locale = 'en' )
286+ self .assertEqual (u'-08:00' , formatted_string )
287+ formatted_string = dates .format_datetime (dt , 'XXXX' , locale = 'en' )
288+ self .assertEqual (u'-0800' , formatted_string )
289+ formatted_string = dates .format_datetime (dt , 'XXXXX' , locale = 'en' )
290+ self .assertEqual (u'-08:00' , formatted_string )
291+ formatted_string = dates .format_datetime (dt , 'x' , locale = 'en' )
292+ self .assertEqual (u'-08' , formatted_string )
293+ formatted_string = dates .format_datetime (dt , 'xx' , locale = 'en' )
294+ self .assertEqual (u'-0800' , formatted_string )
295+ formatted_string = dates .format_datetime (dt , 'xxx' , locale = 'en' )
296+ self .assertEqual (u'-08:00' , formatted_string )
297+ formatted_string = dates .format_datetime (dt , 'xxxx' , locale = 'en' )
298+ self .assertEqual (u'-0800' , formatted_string )
299+ formatted_string = dates .format_datetime (dt , 'xxxxx' , locale = 'en' )
300+ self .assertEqual (u'-08:00' , formatted_string )
301+ dt = datetime (2016 , 1 , 13 , 7 , 8 , 35 )
302+ tz = dates .get_timezone ('UTC' )
303+ dt = tz .localize (dt )
304+ formatted_string = dates .format_datetime (dt , 'Z' , locale = 'en' )
305+ self .assertEqual (u'+0000' , formatted_string )
306+ formatted_string = dates .format_datetime (dt , 'ZZ' , locale = 'en' )
307+ self .assertEqual (u'+0000' , formatted_string )
308+ formatted_string = dates .format_datetime (dt , 'ZZZ' , locale = 'en' )
309+ self .assertEqual (u'+0000' , formatted_string )
310+ formatted_string = dates .format_datetime (dt , 'ZZZZ' , locale = 'en' )
311+ self .assertEqual (u'GMT+00:00' , formatted_string )
312+ formatted_string = dates .format_datetime (dt , 'ZZZZZ' , locale = 'en' )
313+ self .assertEqual (u'Z' , formatted_string )
314+ formatted_string = dates .format_datetime (dt , 'OOOO' , locale = 'en' )
315+ self .assertEqual (u'GMT+00:00' , formatted_string )
316+ formatted_string = dates .format_datetime (dt , 'VV' , locale = 'en' )
317+ self .assertEqual (u'Etc/GMT' , formatted_string )
318+ formatted_string = dates .format_datetime (dt , 'VVV' , locale = 'en' )
319+ self .assertEqual (u'GMT' , formatted_string )
320+ formatted_string = dates .format_datetime (dt , 'X' , locale = 'en' )
321+ self .assertEqual (u'Z' , formatted_string )
322+ formatted_string = dates .format_datetime (dt , 'XX' , locale = 'en' )
323+ self .assertEqual (u'Z' , formatted_string )
324+ formatted_string = dates .format_datetime (dt , 'XXX' , locale = 'en' )
325+ self .assertEqual (u'Z' , formatted_string )
326+ formatted_string = dates .format_datetime (dt , 'XXXX' , locale = 'en' )
327+ self .assertEqual (u'Z' , formatted_string )
328+ formatted_string = dates .format_datetime (dt , 'XXXXX' , locale = 'en' )
329+ self .assertEqual (u'Z' , formatted_string )
330+ formatted_string = dates .format_datetime (dt , 'x' , locale = 'en' )
331+ self .assertEqual (u'+00' , formatted_string )
332+ formatted_string = dates .format_datetime (dt , 'xx' , locale = 'en' )
333+ self .assertEqual (u'+0000' , formatted_string )
334+ formatted_string = dates .format_datetime (dt , 'xxx' , locale = 'en' )
335+ self .assertEqual (u'+00:00' , formatted_string )
336+ formatted_string = dates .format_datetime (dt , 'xxxx' , locale = 'en' )
337+ self .assertEqual (u'+0000' , formatted_string )
338+ formatted_string = dates .format_datetime (dt , 'xxxxx' , locale = 'en' )
339+ self .assertEqual (u'+00:00' , formatted_string )
340+ dt = datetime (2016 , 1 , 13 , 7 , 8 , 35 )
341+ tz = dates .get_timezone ('Asia/Kolkata' )
342+ dt = tz .localize (dt )
343+ formatted_string = dates .format_datetime (dt , 'zzzz' , locale = 'en' )
344+ self .assertEqual (u'India Standard Time' , formatted_string )
345+ formatted_string = dates .format_datetime (dt , 'ZZZZ' , locale = 'en' )
346+ self .assertEqual (u'GMT+05:30' , formatted_string )
347+ formatted_string = dates .format_datetime (dt , 'ZZZZZ' , locale = 'en' )
348+ self .assertEqual (u'+05:30' , formatted_string )
349+ formatted_string = dates .format_datetime (dt , 'OOOO' , locale = 'en' )
350+ self .assertEqual (u'GMT+05:30' , formatted_string )
351+ formatted_string = dates .format_datetime (dt , 'VV' , locale = 'en' )
352+ self .assertEqual (u'Asia/Calcutta' , formatted_string )
353+ formatted_string = dates .format_datetime (dt , 'VVV' , locale = 'en' )
354+ self .assertEqual (u'Kolkata' , formatted_string )
355+ formatted_string = dates .format_datetime (dt , 'X' , locale = 'en' )
356+ self .assertEqual (u'+0530' , formatted_string )
357+ formatted_string = dates .format_datetime (dt , 'XX' , locale = 'en' )
358+ self .assertEqual (u'+0530' , formatted_string )
359+ formatted_string = dates .format_datetime (dt , 'XXX' , locale = 'en' )
360+ self .assertEqual (u'+05:30' , formatted_string )
361+ formatted_string = dates .format_datetime (dt , 'XXXX' , locale = 'en' )
362+ self .assertEqual (u'+0530' , formatted_string )
363+ formatted_string = dates .format_datetime (dt , 'XXXXX' , locale = 'en' )
364+ self .assertEqual (u'+05:30' , formatted_string )
365+ formatted_string = dates .format_datetime (dt , 'x' , locale = 'en' )
366+ self .assertEqual (u'+0530' , formatted_string )
367+ formatted_string = dates .format_datetime (dt , 'xx' , locale = 'en' )
368+ self .assertEqual (u'+0530' , formatted_string )
369+ formatted_string = dates .format_datetime (dt , 'xxx' , locale = 'en' )
370+ self .assertEqual (u'+05:30' , formatted_string )
371+ formatted_string = dates .format_datetime (dt , 'xxxx' , locale = 'en' )
372+ self .assertEqual (u'+0530' , formatted_string )
373+ formatted_string = dates .format_datetime (dt , 'xxxxx' , locale = 'en' )
374+ self .assertEqual (u'+05:30' , formatted_string )
375+
253376
254377class FormatTimeTestCase (unittest .TestCase ):
255378
0 commit comments