Setting timezone in Python

后端 未结 5 1693
我在风中等你
我在风中等你 2020-11-27 13:47

Is it possible with Python to set the timezone just like this in PHP:

date_default_timezone_set(\"Europe/London\");
$Year = date(\'y\');
$Month = date(\'m\')         


        
相关标签:
5条回答
  • 2020-11-27 14:08

    For windows you can use:

    Running Windows command prompt commands in python.

    import os
    os.system('tzutil /s "Central Standard Time"')
    

    In windows command prompt try:

    This gives current timezone:

    tzutil /g

    This gives a list of timezones:

    tzutil /l

    This will set the timezone:

    tzutil /s "Central America Standard Time"

    For further reference: http://woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

    0 讨论(0)
  • 2020-11-27 14:09
    >>> import os, time
    >>> time.strftime('%X %x %Z')
    '12:45:20 08/19/09 CDT'
    >>> os.environ['TZ'] = 'Europe/London'
    >>> time.tzset()
    >>> time.strftime('%X %x %Z')
    '18:45:39 08/19/09 BST'
    

    To get the specific values you've listed:

    >>> year = time.strftime('%Y')
    >>> month = time.strftime('%m')
    >>> day = time.strftime('%d')
    >>> hour = time.strftime('%H')
    >>> minute = time.strftime('%M')
    

    See here for a complete list of directives. Keep in mind that the strftime() function will always return a string, not an integer or other type.

    0 讨论(0)
  • 2020-11-27 14:12

    It's not an answer, but...

    To get datetime components individually, better use datetime.timetuple:

    time = datetime.now()
    time.timetuple()
    #-> time.struct_time(
    #    tm_year=2014, tm_mon=9, tm_mday=7, 
    #    tm_hour=2, tm_min=38, tm_sec=5, 
    #    tm_wday=6, tm_yday=250, tm_isdst=-1
    #)
    

    It's now easy to get the parts:

    ts = time.timetuple()
    ts.tm_year
    ts.tm_mon
    ts.tm_mday
    ts.tm_hour
    ts.tm_min
    ts.tm_sec
    
    0 讨论(0)
  • 2020-11-27 14:15

    Be aware that running

    import os
    os.system("tzutil /s \"Central Standard Time\"");
    

    will alter Windows system time, NOT just the local python environment time (so is definitley NOT the same as:

    >>> os.environ['TZ'] = 'Europe/London'
    >>> time.tzset()
    

    which will only set in the current environment time (in Unix only)

    0 讨论(0)
  • 2020-11-27 14:17

    You can use pytz as well..

    import datetime
    import pytz
    def utcnow():
        return datetime.datetime.now(tz=pytz.utc)
    utcnow()
       datetime.datetime(2020, 8, 15, 14, 45, 19, 182703, tzinfo=<UTC>)
    utcnow().isoformat()
    
    '
    

    2020-08-15T14:45:21.982600+00:00'

    0 讨论(0)
提交回复
热议问题