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'