Epochos laiko konvertavimas į datą

Aš gaunu atsakymą, kad likusi dalis yra epochos laiko formatas, pvz.

start_time = 1234566
end_time = 1234578

Noriu konvertuoti tas epochos sekundes į MySQL formato laiką, kad galėčiau išsaugoti skirtumus savo MySQL duomenų bazėje.

Bandžiau:

>>> 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)

Aukščiau pateiktas rezultatas nėra tai, ko aš tikiuosi. Noriu, kad jis būtų toks

2012-09-12 21:00:00

Prašau, pasiūlykite, kaip galėčiau tai pasiekti?

Taip pat, Kodėl gaunu TypeError: reikalingas float

>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
  ...
TypeError: a float is required
Sprendimas

Norėdami laiko vertę (float arba int) paversti suformatuota eilute, naudokite:

time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1347517370))
Komentarai (6)

Išbandykite tai:

>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1347517119))
'2012-09-12 23:18:39'

Taip pat MySQL galite FROM_UNIXTIME, pvz:

INSERT INTO tblname VALUES (FROM_UNIXTIME(1347517119))

Jūsų antrasis klausimas greičiausiai kyla dėl to, kad getbbb_class.end_time yra eilutė. Ją galite konvertuoti į skaičių, pvz: float(getbbb_class.end_time)

Komentarai (0)

Pirmiausia šiek tiek informacijos apie epochą iš 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).

kad suprastumėte, kaip turėtų būti epoch.

>>> time.time()
1347517171.6514659
>>> time.gmtime(time.time())
(2012, 9, 13, 6, 19, 34, 3, 257, 0)

tik įsitikinkite, kad argumentas, kurį perduodate time.gmtime(), yra sveikas skaičius.

Komentarai (1)