python3获取时间戳、秒数和日期时间的相互转换

本文介绍了如何在Python3中进行时间戳、秒数与日期时间之间的转换。首先展示了获取时间戳的代码,然后详细解释了如何将秒数转换为时间,并提供了将时间转化为秒数的方法。示例代码中包含了各种日期时间格式的说明,帮助理解转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、获取时间戳

代码如下:

import time
import datetime

t = time.time()

print (t)                       #原始时间数据
print (int(t))                  #秒级时间戳
print (int(round(t * 1000)))    #毫秒级时间戳

nowTime = lambda:int(round(t * 1000))
print (nowTime());              #毫秒级时间戳,基于lambda

print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))   #日期格式化

结果:

1552267863.7501628
1552267863
1552267863750
1552267863750
2019-03-11 09:31:03

时间格式说明:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身

2、将秒数转换为时间

方法代码:

import time

def getTime(seconds):
    timeArray = time.localtime(seconds)
    otherStyleTime = time.strftime("%H:%M:%S", timeArray)
    print(otherStyleTime)

if __name__ == '__main__':
    time = getTime(1551863258)
    print(time)

结果:

17:07:38

Process finished with exit code 0

上面例子中的%H:%M:%S可以根据需要设置为别的格式,如%Y_%m_%d %H:%M:%S

3、将时间转化为秒数

示例代码:

import time
import datetime

def composeTime(time1):
    time2 = datetime.datetime.strptime(time1, "%Y_%m_%d %H:%M:%S")
    time3 = time.mktime(time2.timetuple())
    time4 = int(time3)
    return time4

if __name__ == '__main__':
    time = composeTime("2019_03_06 17:07:38")
    print(time)

结果:

1551863258

Process finished with exit code 0

说明:上面代码中之所以加了个int(time3)是因为time3的值其实是1551863258.0,故以此方法来去掉后边的小数点;

### 时间与时间戳之间的转换Python 中,可以利用 `datetime` `time` 模块来实现时间时间戳之间的相互转换。以下是具体方法: #### 将时间戳转换期对象 可以通过 `datetime.datetime.fromtimestamp()` 方法将 Unix 时间戳(单位为转换为本地时间的期对象。 ```python import datetime timestamp = 1609459200 # 示例时间戳 date_object = datetime.datetime.fromtimestamp(timestamp) print(date_object) # 输出格式化后的时间 ``` 上述代码展示了如何通过给定的时间戳创建对应的期对象[^1]。 #### 将期对象转换时间戳 如果有一个期对象并希望将其转换时间戳,则可使用 `datetime.timestamp()` 方法。 ```python date_obj = datetime.datetime(2021, 1, 1) timestamp = date_obj.timestamp() print(timestamp) # 打印对应的时间戳 ``` 此部分说明了如何从期对象获取相应的时间戳。 #### 使用 `time` 模块处理时间戳 除了 `datetime` 外,`time` 模块也提供了多种方式用于操作时间戳。例如,可以用 `time.localtime()` 或 `time.gmtime()` 来解析时间戳成结构化的元组形式;或者用 `time.mktime()` 反向构建时间戳。 ```python import time # 转换时间戳到本地时间元组 local_time_tuple = time.localtime(1609459200) # 构建新的时间戳 mktime_example = time.mktime(local_time_tuple) print(mktime_example) ``` 这里解释了另一种途径来进行时间戳的相关运算[^2]。 #### 数据集中涉及的时间戳应用实例 对于实际应用场景中的例子,在推荐系统的数据加载过程中会遇到带有时间戳字段的数据表。这些时间戳通常记录的是用户行为发生的具体时刻,便于后续分析模型考虑时间因素的影响。 ```python import pandas as pd r_cols = ['user_id', 'movie_id', 'rating', 'unix_timestamp'] ratings_train = pd.read_csv('ml-100k/ua.base', sep='\t', names=r_cols, encoding='latin-1') ratings_test = pd.read_csv('ml-100k/ua.test', sep='\t', names=r_cols, encoding='latin-1') # 查看前几条数据确认读取成功与否 print(ratings_train.head()) ``` 以上片段演示了一个典型场景下怎样导入含时间戳列的数据文件,并初步观察其内容[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值