py datetime.md

# coding:utf8
"""
时间方面的操作
https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
"""
from datetime import datetime
import time
import calendar
import pytz


# timestamp ==> datetime
def timestamp2datetime(timestamp):
    return datetime.fromtimestamp(timestamp)


# datetime ==> str
def datetime2str(datetime_obj, str_format="%Y-%m-%d %H:%M:%S"):
    return datetime_obj.strftime(str_format)


# str ==> datetime
def str2datetime(time_str, str_format="%Y-%m-%d %H:%M:%S"):
    return datetime.strptime(time_str, str_format)


# offset-naive ==> offset-aware
def naive2aware(datetime_obj):
    return datetime_obj.replace(tzinfo=pytz.timezone('UTC'))


# offset-aware ==> offset-naive
def aware2naive(datetime_obj):
    return datetime_obj.replace(tzinfo=None)


# 返回当天星期几和这个月有几天
def get_wday_and_month_range():
    """返回当天星期几和这个月有几天"""
    day_now = time.localtime()
    # 得到本月的天数 第一返回为月第一日为星期几(0-6), 第二返回为此月天数
    w_day, month_range = calendar.monthrange(day_now.tm_year, day_now.tm_mon)
    w_day_now = w_day + day_now.tm_mday - 1
    w_day_now = w_day_now % 7 + 1
    return w_day_now, month_range

仅供参考
目录