在Python中设置时区

Ada*_*nik 49 python timezone

是否有可能使用Python在PHP中设置时区:

date_default_timezone_set("Europe/London");
$Year = date('y');
$Month = date('m');
$Day = date('d');
$Hour = date('H');
$Minute = date('i');
Run Code Online (Sandbox Code Playgroud)

我无法安装任何其他模块等,因为我正在使用共享的虚拟主机.

有任何想法吗?

Ric*_*ões 85

>>> 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'
Run Code Online (Sandbox Code Playgroud)

要获得您列出的具体值:

>>> year = time.strftime('%Y')
>>> month = time.strftime('%m')
>>> day = time.strftime('%d')
>>> hour = time.strftime('%H')
>>> minute = time.strftime('%M')
Run Code Online (Sandbox Code Playgroud)

请参阅此处以获取完整的指令列表.请记住,strftime()函数将始终返回字符串,而不是整数或其他类型.

  • "tzset"是Unix唯一的功能.Arrg! (13认同)

小智 7

请注意,运行

import os
os.system("tzutil /s \"Central Standard Time\"");
Run Code Online (Sandbox Code Playgroud)

将改变 Windows 系统时间,而不仅仅是本地 python 环境时间(因此 definitley 与以下内容不同:

>>> os.environ['TZ'] = 'Europe/London'
>>> time.tzset()
Run Code Online (Sandbox Code Playgroud)

只会在当前环境时间设置(仅在 Unix 中)


Ash*_*n R 6

对于 Windows,您可以使用:

在 python 中运行 Windows 命令提示符命令。

import os
os.system('tzutil /s "Central Standard Time"')
Run Code Online (Sandbox Code Playgroud)

在 Windows 命令提示符下尝试:

这给出了当前时区:

工具 /g

这给出了时区列表:

工具 /l

这将设置时区:

tzutil /s "中美洲标准时间"

进一步参考:http : //woshub.com/how-to-set-timezone-from-command-prompt-in-windows/

  • 不过,特定于 Windows (2认同)
  • 是的,但这完成了 Richard Simões 对 `tzset` 的回答,它仅在 Unix 系统上可用。 (2认同)

小智 6

你也可以使用 pytz..

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()

'
Run Code Online (Sandbox Code Playgroud)

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