python——时间与时间戳之间的转换

我们通过文件属性的获取,os.stat() 方法: >>> import os >>> statinfo=os.stat(r"C:/1.txt") >>> statinfo (33206, 0L, 0, 0, 0, 0, 29L, 1201865413, 1201867904, 1201865413) 使用os.stat的返回值statinfo的三个属性获取文件的创建时间等 st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间),例如,取得文件修改时间: >>> statinfo.st_mtime 1201865413.8952832 这个时间是一个linux时间戳,需要转换一下 使用time模块中的localtime函数可以知道: >>> import time >>> time.localtime(statinfo.st_ctime) (2008, 2, 1, 19, 30, 13, 4, 32, 0) 2008年2月1日的19时30分13秒(2008-2-1 19:30:13)


对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种:
  • 将时间转换为时间戳
  • 重新格式化时间
  • 时间戳转换为时间
  • 获取当前时间及将其转换成时间戳
1、将时间转换成时间戳 将如上的时间2016-05-05 20:28:54转换成时间戳,具体的操作过程为:
  • 利用strptime()函数将时间转换成时间数组
  • 利用mktime()函数将时间数组转换成时间戳
#coding:UTF-8 import timedt = "2016-05-05 20:28:54"#转换成时间数组 timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S") #转换成时间戳 timestamp = time.mktime(timeArray)print timestamp

2、重新格式化时间 重新格式化时间需要以下的两个步骤:
  • 利用strptime()函数将时间转换成时间数组
  • 利用strftime()函数重新格式化时间
#coding:UTF-8 import timedt = "2016-05-05 20:28:54"#转换成时间数组 timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S") #转换成新的时间格式(20160505-20:28:54) dt_new = time.strftime("%Y%m%d-%H:%M:%S",timeArray)print dt_new

3、将时间戳转换成时间 在时间戳转换成时间中,首先需要将时间戳转换成localtime,再转换成时间的具体格式:
  • 利用localtime()函数将时间戳转化成localtime的格式
  • 利用strftime()函数重新格式化时间
#coding:UTF-8 import timetimestamp = 1462451334#转换成localtime time_local = time.localtime(timestamp) #转换成新的时间格式(2016-05-05 20:28:54) dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)print dt

4、按指定的格式获取当前时间 利用time()获取当前时间,再利用localtime()函数转换为localtime,最后利用strftime()函数重新格式化时间。
#coding:UTF-8 import time#获取当前时间 time_now = int(time.time()) #转换成localtime time_local = time.localtime(time_now) #转换成新的时间格式(2016-05-09 18:59:20) dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)print dt

【python——时间与时间戳之间的转换】

    推荐阅读