Vui lòng cập nhật điều này nếu tôi không hiểu đúng, nhưng đây là một vài ví dụ có thể hữu ích. Lưu ý rằng điều này sử dụng datetime mô-đun thay vì time .
>>> import datetime
Ở đây chúng tôi thiết lập một dấu thời gian mẫu ts và định dạng f :
>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
Tương tự như những gì bạn đã làm ở trên, chúng tôi sử dụng strptime hàm (từ datetime.datetime ) để chuyển đổi chuỗi của chúng tôi thành datetime đối tượng dựa trên tham số định dạng:
>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
Bây giờ ngược lại - ở đây chúng tôi sử dụng datetime.datetime.now() để lấy thời gian hiện tại làm datetime đối tượng:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
Trong datetime trường hợp, strftime phương thức thực sự được gọi trên datetime chính đối tượng, với tham số định dạng làm đối số:
>>> now.strftime(f)
'2013-01-12 00:46:54'
Trong tình huống của bạn, lý do bạn gặp lỗi là vì time.time() trả về một float:
>>> time.time()
1357980846.290231
Nhưng time.strftime cần một time tuple, tương tự như những gì bạn đã có ở trên. Không đi vào vòng xoáy điên cuồng đó là thời gian, một hàm như time.localtime() sẽ trả về time nói trên tuple và sẽ trở lại như bạn mong đợi:
>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'