将纪元时间转换为date时间
我从其余的时间得到的回应是一个时代格式
start_time = 1234566 end_time = 1234578 我想在MySQL格式的时间转换那个纪元秒,以便我可以存储在我的MySQL数据库的差异。
我试过了:
 >>> import time >>> time.gmtime(123456) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0) 
以上结果不是我所期待的。 我想要它像
 2012-09-12 21:00:00 
请build议我怎样才能做到这一点?
 另外,为什么我得到TypeError: a float is required的 
 >>> getbbb_class.end_time = 1347516459425 >>> mend = time.gmtime(getbbb_class.end_time).tm_hour Traceback (most recent call last): ... TypeError: a float is required 
	
要将您的时间值(float或int)转换为格式化的string,请使用:
 time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1347517370)) 
 你也可以使用datetime : 
 >>> import datetime >>> datetime.datetime.fromtimestamp(1347517370).strftime('%c') '2012-09-13 02:22:50' 
这是你需要的
 In [1]: time.time() Out[1]: 1347517739.44904 In [2]: time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time())) Out[2]: '2012-09-13 06:31:43' 
 请input一个float而不是int ,而其他TypeError应该消失。 
 mend = time.gmtime(float(getbbb_class.end_time)).tm_hour 
尝试这个:
 >>> import time >>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1347517119)) '2012-09-12 23:18:39' 
 另外在MySQL中,你可以像FROM_UNIXTIME一样: 
 INSERT INTO tblname VALUES (FROM_UNIXTIME(1347517119)) 
 对于你的第二个问题,这可能是因为getbbb_class.end_time是一个string。 您可以将其转换为数字,如: float(getbbb_class.end_time) 
 #This adds 10 seconds from now. from datetime import datetime import commands date_string_command="date +%s" utc = commands.getoutput(date_string_command) a_date=datetime.fromtimestamp(float(int(utc))).strftime('%Y-%m-%d %H:%M:%S') print('a_date:'+a_date) utc = int(utc)+10 b_date=datetime.fromtimestamp(float(utc)).strftime('%Y-%m-%d %H:%M:%S') print('b_date:'+b_date) 
这是更罗嗦一点,但它来自unix中的date命令。
首先从man gmtime的一些信息
 The ctime(), gmtime() and localtime() functions all take an argument of data type time_t which represents calendar time. When inter- preted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC). 
了解时代应该如何。
 >>> time.time() 1347517171.6514659 >>> time.gmtime(time.time()) (2012, 9, 13, 6, 19, 34, 3, 257, 0) 
 只要确保你传给time.gmtime()的参数是time.gmtime()就是整数。 
 >>> import datetime >>> datetime.datetime.fromtimestamp(1347517370).strftime('%Y-%m-%d %H:%M:%S') '2012-09-13 14:22:50' # Local time 
为了得到UTC,
 >>> datetime.datetime.utcfromtimestamp(1347517370).strftime('%Y-%m-%d %H:%M:%S') '2012-09-13 06:22:50'