import pytz
WORK_TIMEZONE = pytz.timezone('Asia/Shanghai')
class DateTimeTool(object):
@staticmethod
def timestamp():
now_dt = datetime.utcnow()
ts = (now_dt - datetime(1970, 1, 1)).total_seconds()
return ts
@staticmethod
def format_date(ts, fmt='%Y-%m-%d'):
date = datetime.utcfromtimestamp(ts + tzoffset)
return date.strftime(fmt)
@staticmethod
def expire_days(now, expire):
if now - expire < 0:
return 0
if now - expire < 86400:
return 1
else:
return timedelta(seconds=(now-expire)).days
@staticmethod
def expire_seconds(ts):
sec = ts % 86400 /3600
#0:00~8:00 to 9:00
if sec>=16:
return int(ts/86400 + 1)*86400 + 3600
return ts
@staticmethod
def date(tz=WORK_TIMEZONE):
return datetime.fromtimestamp(time.time(), tz=tz)
@staticmethod
def beijing_date():
ts = int(time.time())
dt = DateTimeTool.format_date(ts, fmt='%Y年%m月%d日')
return dt
@staticmethod
def parse_beijing_date(date_str, fmt='%Y年%m月%d日'):
"""
weekday = DateTimeTool.parse_beijing_date(start_date).weekday()
weekday_chinese = {
0: u'一', 1: u'二', 2: u'三', 3: u'四', 4: u'五', 5: u'六', 6: u'日'
}[weekday]
:param date_str:
:param fmt:
:return:
"""
date_str = to_str(date_str)
try:
result = datetime.strptime(date_str, fmt)
except Exception as e:
logger.exception(e)
result = dateparser.parse(date_str)
return result
项目中关于时区的一点点tips
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...