时间戳转换器

Unix 纪元时间戳在 Python 中转换为 UTC 时区

日期:2023-02-23     浏览:226    
【中文标题】Unix 纪元时间戳在 Python 中转换为 UTC 时区【英文标题】:Unix epoch timestamps converted to UTC timezone in Python 【发布时间】:2021-08-24 06:14:34 【问题描述】:

对于给定的年份,此代码返回一年的开始和结束的可读和 Unix 纪元时间。

如何简化此操作并将其默认为 UTC 时间而不是本地时区?我将不胜感激任何指针。谢谢。

#!/usr/bin/env python3

from datetime import datetime
import pytz

tz = pytz.utc
fmt = '%Y-%m-%d %H:%M:%S%z'

def unix_time(date):
    timestamp = datetime.strptime(date,fmt).strftime('%s')
    return str(timestamp) #unix timestamp

def first_of(year):
    first = str(datetime(year, 1, 1, tzinfo=tz)) #yyyy-01-01 00:00 
    times = [first, unix_time(first)] 
    return times

def last_of(year):
    last = str(datetime(year, 12, 31, 23, 59, tzinfo=tz)) #yyyy-12-31 23:59
    times = [last, unix_time(last)]
    return times

year = 2021
print(first_of(year), last_of(year), sep='\n')


【问题讨论】:

除了你根本不需要pytz(见deceze的回答),我们在标准库中有2021、Python 3.9和zoneinfo——所以pytz不应该不再使用。旧代码有一个 deprecation shim。 【参考方案1】:

只是不要在字符串、整数和datetime 对象之间进行所有不必要的转换,您的代码已经简单多了:

from datetime import datetime, timezone

year = 2021
first = datetime(year, 1, 1, tzinfo=timezone.utc)
last = datetime(year, 12, 31, 59, 59, 59, tzinfo=timezone.utc)

print(first, first.timestamp(), last, last.timestamp())

【讨论】:

相关文章

将 UNIX 纪元转换为日期对象

{】将UNIX纪元转换为日期对象【英文标题】:ConvertUNIXepochtoDateobject【发布时间】:2012-11-0712:27:17【问题描述】:我正在对均匀分布的时间序列进行绘图和计算。时间戳当前存储为整数,表示自UNIX纪元以来的秒数(例如1352068320)...}

在 Google 表格中将 Unix 纪元时间转换为日期

{】在Google表格中将Unix纪元时间转换为日期【英文标题】:ConvertUnixEpochTimetoDateinGoogleSheets【发布时间】:2017-12-2621:34:06【问题描述】:我有一张包含unix纪元时间列的表格(以秒为单位):1500598288如何将这些转换为正常日期?【...}

如何将纪元 unix 时间转换为 TOD 时钟(STUCK)?

{】如何将纪元unix时间转换为TOD时钟(STUCK)?【英文标题】:HowtoconvertepochunixtimetoTODclock(STCK)?【发布时间】:2020-11-1220:28:14【问题描述】:请您帮我将Unix纪元时间转换为TOD时钟(STCK)8字节。例如:以十六进制表示的EPOCH时间=\'175BC...}

在 xslt 中将 dateTime 转换为 unix 纪元

{】在xslt中将dateTime转换为unix纪元【英文标题】:ConvertdateTimetounixepochinxslt【发布时间】:2011-03-2822:07:20【问题描述】:我有一个dateTime变量,我想将它转换为纪元的十进制值。如何做到这一点?我尝试使用:seconds-from-duration($time,...}

PostgreSQL:如何从 Unix 纪元转换为日期?

{】PostgreSQL:如何从Unix纪元转换为日期?【英文标题】:PostgreSQL:howtoconvertfromUnixepochtodate?【发布时间】:2013-05-1215:53:10【问题描述】:声明给了我日期和时间。如何修改语句以使其仅返回日期(而不是时间)?SELECTto_timestamp(TRUNC...}

为啥 PHP 和 MySQL 的 unix 时间戳在 1983 年 10 月 29 日不同?

{】为啥PHP和MySQL的unix时间戳在1983年10月29日不同?【英文标题】:WhydoPHPandMySQLunixtimestampsdivergeon1983-10-29?为什么PHP和MySQL的unix时间戳在1983年10月29日不同?【发布时间】:2011-09-0703:04:21【问题描述】:我一直在我的应用程序中使用...}

Unix 纪元时间到 Java Date 对象

{】Unix纪元时间到JavaDate对象【英文标题】:UnixepochtimetoJavaDateobject【发布时间】:2010-10-0619:22:08【问题描述】:我有一个包含UNIXEpochtime的字符串,我需要将它转换为JavaDate对象。Stringdate="1081157732";DateFormatdf=newSimpleDateFormat("");//This...}

pythoniso8601日期格式与unix纪元日期时间之间的转换(代码片段)

{}

使用 strftime 将 python 日期时间转换为纪元

{】使用strftime将python日期时间转换为纪元【英文标题】:Convertpythondatetimetoepochwithstrftime【发布时间】:2012-07-2909:23:25【问题描述】:我有一个UTC时间,我想要从纪元开始的秒数。我正在使用strftime将其转换为秒数。以2012年4月1日...}

在 Python 中,如何将自纪元以来的秒数转换为 `datetime` 对象?

{】在Python中,如何将自纪元以来的秒数转换为`datetime`对象?【英文标题】:InPython,howdoyouconvertsecondssinceepochtoa`datetime`object?【发布时间】:2011-04-1107:18:12【问题描述】:time模块可以使用自纪元以来的秒数进行初始化:>>>imp...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号