mysql datetime과 python 타임스탬프 사이를 변환하는 적절한 방법은 무엇입니까?
http://dev.mysql.com/doc/refman/5.0/en/datetime.html 에 따르면 문자열 값 'YYYY-MM-DD HH:MM:SS'를 타임스탬프 int에 입력합니다.
파이썬의 서류를 찾아봤어요
시도했습니다.
print(time.strptime('2013-01-12 15:27:43', '%Y-%m-%d %H:%M:%S'))
python은 나에게 이런 결과를 줍니다.
time.time.tim_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=15, tm_min=27, tm_sec=43, tm_wday=5, tm_yday=12, tm_isdst=-1)
타임스탬프를 YYY-MM-DD HH로 변환하려고 시도했습니다.MM:SS 형식
print(time.strftime('%Y-%m-%d %H:%M:%S',time.time()))
파이썬은 제게 타입 에러를 주세요.
타임스탬프만 사용하여 시간과 날짜를 계산합니다. 파이썬에 이미 간단하고 효율적인 방법이 있기를 바라며 임시 데이터를 만들 필요가 없습니다.
답에 따르면 나는 두가지 방법을 씁니다.도움이 되기를 바랍니다
import time
def convertTimestampToSQLDateTime(value):
return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(value))
def convertSQLDateTimeToTimestamp(value):
return time.mktime(time.strptime(value, '%Y-%m-%d %H:%M:%S'))
제가 제대로 이해하지 못하는 경우 이를 업데이트하게 되어 기쁘지만 도움이 될 수 있는 몇 가지 예가 있습니다.이 방법은 다음을 사용합니다.datetime
대신 모듈을 구성합니다.time
.
>>> import datetime
여기서는 예제 타임스탬프를 설정합니다.ts
양식과f
:
>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
위에서 하신 것과 유사하게 우리는 다음을 사용합니다.strptime
기능(출처)datetime.datetime
우리의 끈을 a로 변환합니다.datetime
형식 지정 매개 변수를 기반으로 하는 개체:
>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
이제 역으로 - 여기서는 사용합니다.datetime.datetime.now()
현재 시간을 a로 구하다datetime
개체:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
에서datetime
케이스, 더strftime
메소드는 실제로 호출됩니다.datetime
형식 지정 매개 변수를 인수로 사용하는 개체 자체:
>>> now.strftime(f)
'2013-01-12 00:46:54'
당신의 상황에서, 당신이 오류를 얻은 이유는time.time()
플로트를 반환합니다.
>>> time.time()
1357980846.290231
그렇지만time.strftime
필요합니다.time
튜플, 당신이 위에 가졌던 것과 유사합니다.시간인 광기어린 나선에 들어가지 않고 다음과 같은 기능을 수행합니다.time.localtime()
위에 언급한 것을 반환할 것입니다.time
튜플(tuple)을 사용하면 원하는 대로 돌아올 것입니다.
>>> 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'
저는 다음 사람을 조금이라도 아끼기 위해 이 수업을 추가할 뿐입니다.만약 누군가 이것이 유용하다고 생각한다면, 로켓 당키의 답에 투표하세요.
## dev on v3.7.6
from datetime import datetime
from time import mktime, time
class Time:
'''\
*Convenience class for easy format conversion*\n
Accepts time() float, datetime object, or SQL datetime str.\n
If no time arg is provided, object is initialized with time().\n
id kwarg can be used to keep track of objects.\n
Access formats as instance.t, instance.dt, or instance.sql.\
'''
f = '%Y-%m-%d %H:%M:%S'
def __init__(self, *arg, id=None) -> None:
self.id = id
if len(arg) == 0:
self.t = time()
self.dt = self._dt
self.sql = self._sql
else:
arg = arg[0]
if isinstance(arg, float) or arg == None:
if isinstance(arg, float):
self.t = arg
else:
self.t = time()
self.dt = self._dt
self.sql = self._sql
elif isinstance(arg, datetime):
self.t = arg.timestamp()
self.dt = arg
self.sql = self._sql
elif isinstance(arg, str):
self.sql = arg
if '.' not in arg:
self.dt = datetime.strptime(self.sql, Time.f)
else:
normal, fract = arg.split('.')
py_t = datetime.strptime(normal, Time.f)
self.dt = py_t.replace(
microsecond=int(fract.ljust(6, '0')[:6]))
self.t = self.dt.timestamp()
@property
def _dt(self) -> datetime:
return datetime.fromtimestamp(self.t)
@property
def _sql(self) -> str:
t = self.dt
std = t.strftime(Time.f)
fract = f'.{str(round(t.microsecond, -3))[:3]}'
return std + fract
def __str__(self) -> str:
if self.id == None:
return self.sql
else:
return f'Time obj "{self.id}": {self.sql}'
def test():
def test_one(*arg):
t = Time(*arg, id=type(*arg))
print(t)
print(t.t)
print(t.dt)
sql = '2020-01-22 15:30:33.433'
time_float = 1579927395.3708763
dt_obj = datetime.now()
for datum in [sql, time_float, dt_obj, None]:
test_one(datum)
if __name__ == '__main__':
test()
언급URL : https://stackoverflow.com/questions/14291636/what-is-the-proper-way-to-convert-between-mysql-datetime-and-python-timestamp
'source' 카테고리의 다른 글
패닉: AVD 시스템 경로가 끊겼습니다.ANDROD_SDK_ROOT 값 확인 (0) | 2023.09.13 |
---|---|
Android에서 XML을 통해 EditText를 편집할 수 없게 만드는 방법? (0) | 2023.09.08 |
왜 안되나요?왜 안되나요?왜 안되나요?플렉스 용기인가요? (0) | 2023.09.08 |
경고:Mac OS High Sierra에서 brew를 사용하여 mysql을 설치하려고 할 때 설치 후 단계가 성공적으로 완료되지 않았습니다. (0) | 2023.09.08 |
VBA를 사용하여 사용자가 셀을 선택하도록 유도(다른 시트에 있을 수 있음) (0) | 2023.09.08 |