Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将DateTime模块的时区设置为eastern?_Python_Date_Datetime - Fatal编程技术网

如何在python中将DateTime模块的时区设置为eastern?

如何在python中将DateTime模块的时区设置为eastern?,python,date,datetime,Python,Date,Datetime,我正在利用datetime模块生成当前日期。但是,当我在晚上7点之后运行此命令时,当前日期将变为明天的日期 我不知道如何设置以下模块的时区 from datetime import * print date.today() 我已经阅读了,但还没有找到如何设置它。虽然date无法选择时区,但datetime可以。您可以使用所需时区的信息: class UTC(tzinfo): def utcoffset(self, dt): return timedelta(0)

我正在利用datetime模块生成当前日期。但是,当我在晚上7点之后运行此命令时,当前日期将变为明天的日期

我不知道如何设置以下模块的时区

from datetime import *
print date.today()
我已经阅读了,但还没有找到如何设置它。

虽然date无法选择时区,但datetime可以。您可以使用所需时区的信息:

class UTC(tzinfo):
    def utcoffset(self, dt):
        return timedelta(0)

    def tzname(self, dt):
        return "UTC"

    def dst(self, dt):
        return timedelta(0) 
例如,东部标准时间UTC-5:00,无DST:

class EST(tzinfo):
    def utcoffset(self, dt):
        return timedelta(hours = -5)

    def tzname(self, dt):
        return "EST"

    def dst(self, dt):
        return timedelta(0)
为您的时区制作课程后,您将获得您想要的日期:

datetime.now(UTC()).date()
将UTC替换为您的时区类名


还有一个可用的库,这将使您更轻松。

您的日期是一个简单的日期时间,它没有时区tz=None。 然后,您必须通过设置时区来本地化此日期时间。使用pytz模块来实现这一点

以下是一个例子:

从日期时间导入日期时间 从pytz导入时区 定义日期格式 fmt=“%Y-%m-%d%H:%m:%S%Z%Z” 定义东部时区 东部=时区“美国/东部” 原始日期时间 naive_dt=datetime.now 本地化日期时间 loc_dt=datetime.noweastern printnaive_dt.strftimemt 2015-12-31 19:21:00 printloc_dt.strfmt 2015-12-31 19:21:00美国东部时间0500
阅读了解更多信息

美国东部时间在标准时间内仅为-5。当夏时制生效时,它将切换到-4。因此有必要使用pytz之类的库。@MattJohnson这只是一个例子,但我使用EST就是出于这个原因。EST始终为UTC-5,EDT始终为UTC-4,ET在两者之间切换。该行动要求东部。当然,他们也可以谈论澳大利亚的东部时间。哈哈:@MattJohnson我现在明白你的困惑了。我对它进行了编辑,希望能更清楚地表明,EST只是一个例子,并不意味着实际上是OP的时区。你建议如何在EST和EDT之间进行选择。它会自动找到当前日期的正确utc偏移量。我更新了答案。非常感谢。