如何使用os.environ在python中设置时区

时间:2011-05-03 18:15:46

标签: python datetime timezone

示例:

os.environ['TZ'] = "CST+06CDT,M4.1.0,M10.5.0"

我能理解CST,06(偏离UTC ??或GMT),CDT ==中央夏令时 但是

M4.1.0和M10.5.0是什么意思?

这是我发现的:

export TZ = EST05EDT

EST取自下表。为了获得UTC,必须增加5个小时,因此05年。目前EDT,东部日光正在生效。

TZ =

DST时区

  0      BST for British Summer.                                
  +400   ADT for Atlantic Daylight.                             
  +500   EDT for Eastern Daylight.                              
  +600   CDT for Central Daylight.                              
  +700   MDT for Mountain Daylight.                             
  +800   PDT for Pacific Daylight.                              
  +900   YDT for Yukon Daylight.                                
  +1000  HDT for Hawaii Daylight.                               
  -100   MEST for Middle European Summer,                       
             MESZ for Middle European Summer,                  
             SST for Swedish Summer and FST for French Summer. 
  -700   WADT for West Australian Daylight.                     
  -1000  EADT for Eastern Australian Daylight.                  
  -1200  NZDT for New Zealand Daylight.                         

有没有更简单的方法回到正确的时间?是的,只需取消设置TZ环境变量。

  $ unset TZ
  $ date
  Sun Aug 22 10:17:35 EDT 2004

请注意,即使TZ经过夏令时调整,您是否会在5个月后获得正确的时间?夏令时什么时候生效?下面显示的TZ值仅在正确日期期间调整为dst。例如,此条目将于4月,第一周,凌晨2点生效,并于10月5日结束,凌晨2点结束。注释10.5.0代表10月的第5周,而不是第5天。

  $ export TZ=EST+5EDT,M4.1.0/2,M10.5.0/2

1 个答案:

答案 0 :(得分:2)

来自python manual

  

TZ的标准格式   环境变量是(空格   为清晰起见而添加:

     

std offset [dst [offset   [,开始[/时间],结束[/时间]]]]

     

Mm.n.d第d天(0 <= d <= 6)或   一年中的第n周(1 <= n   &lt; = 5,1&lt; = m&lt; = 12,其中第5周表示   可能是“月中的最后一天”   发生在第四或   第五周)。第1周是第一周   第一天发生的日子。第零天   是星期天。