我想为本地计算机打印带有时区名称的当前日期和时间。但是,我似乎看不到最后一点
In [1]: from datetime import datetime
In [2]: print(datetime.now().strftime('%d %b %Y %H:%M:%S'))
09 Apr 2019 13:23:47
In [3]: print(datetime.now().strftime('%d %b %Y %H:%M:%S %Z'))
09 Apr 2019 13:23:52
我希望看到我的PC的时区名称('CET')已添加到第二个字符串中。我如何获得:
09 Apr 2019 13:23:52 CET
答案 0 :(得分:1)
这是因为app.UseExceptionHandler(a => a.Run(async context =>
{
var exceptionHandlerPathFeature = context.Features.Get<IExceptionHandlerPathFeature>();
var exception = exceptionHandlerPathFeature.Error;
var result = JsonConvert.SerializeObject(new { error = exception.Message });
context.Response.ContentType = "application/json";
await context.Response.WriteAsync(result);
}));
的默认datetime.now
参数是tz
。
如何指定时区的示例:
None
吐出from pytz import UTC
datetime.now(tz=UTC).strftime("%Z")
。
如果要获取当前时区,则:
UTC
在我的情况下为import time
time.strftime("%Z", time.gmtime())
答案 1 :(得分:1)
基本上,如果您想使用time
库来获取系统的时区信息。
>>> import time
>>> time.tzname
('IST', 'IST')
在我的情况下,时区为IST
。
更新 如果您只想使用datetime模块,则可以采用一种怪异的方式,但绝对不建议这样做。此answer中提到了解决方案。但是同样的问题是,这不是充分的证据,假设您对印度和斯里兰卡这两个国家具有相同的时区差异,那么由于IST和SLST均为GMT + 5:30,它将无法识别出正确的时区>