📄 times.py
字号:
"""times moduleThis module provides some Date and Time classes for dealing with MySQL data.Use Python datetime module to handle date and time columns."""from time import localtimefrom datetime import date, datetime, time, timedeltafrom _mysql import string_literalDate = dateTime = timeTimeDelta = timedeltaTimestamp = datetimeDateTimeDeltaType = timedeltaDateTimeType = datetimedef DateFromTicks(ticks): """Convert UNIX ticks into a date instance.""" return date(*localtime(ticks)[:3])def TimeFromTicks(ticks): """Convert UNIX ticks into a time instance.""" return time(*localtime(ticks)[3:6])def TimestampFromTicks(ticks): """Convert UNIX ticks into a datetime instance.""" return datetime(*localtime(ticks)[:6])format_TIME = format_DATE = strdef format_TIMEDELTA(v): seconds = int(v.seconds) % 60 minutes = int(v.seconds / 60) % 60 hours = int(v.seconds / 3600) % 24 return '%d %d:%d:%d' % (v.days, hours, minutes, seconds)def format_TIMESTAMP(d): return d.strftime("%Y-%m-%d %H:%M:%S")def DateTime_or_None(s): if ' ' in s: sep = ' ' elif 'T' in s: sep = 'T' else: return Date_or_None(s) try: d, t = s.split(sep, 1) return datetime(*[ int(x) for x in d.split('-')+t.split(':') ]) except: return Date_or_None(s)def TimeDelta_or_None(s): from math import modf try: h, m, s = s.split(':') td = timedelta(hours=int(h), minutes=int(m), seconds=int(float(s)), microseconds=int(modf(float(s))[0]*1000000)) if h < 0: return -td else: return td except: return Nonedef Time_or_None(s): from math import modf try: h, m, s = s.split(':') return time(hour=int(h), minute=int(m), second=int(float(s)), microsecond=int(modf(float(s))[0]*1000000)) except: return Nonedef Date_or_None(s): try: return date(*[ int(x) for x in s.split('-',2)]) except: return Nonedef DateTime2literal(d, c): """Format a DateTime object as an ISO timestamp.""" return string_literal(format_TIMESTAMP(d),c) def DateTimeDelta2literal(d, c): """Format a DateTimeDelta object as a time.""" return string_literal(format_TIMEDELTA(d),c)def mysql_timestamp_converter(s): """Convert a MySQL TIMESTAMP to a Timestamp object.""" # MySQL>4.1 returns TIMESTAMP in the same format as DATETIME if s[4] == '-': return DateTime_or_None(s) s = s + "0"*(14-len(s)) # padding parts = map(int, filter(None, (s[:4],s[4:6],s[6:8], s[8:10],s[10:12],s[12:14]))) try: return Timestamp(*parts) except: return None
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -