|
@@ -256,42 +256,65 @@ def time_stamp_to_time(time_stamp, time_format):
|
|
|
return time.strftime(time_format, time_array)
|
|
|
|
|
|
|
|
|
-if __name__ == '__main__':
|
|
|
- zero_today, last_today = get_today_date(True)
|
|
|
- month_end = get_cur_month_end()
|
|
|
- start_time, month_end_time = get_start_and_end_time(month_end, '%Y-%m-%d')
|
|
|
- print(zero_today)
|
|
|
- print(month_end_time)
|
|
|
-
|
|
|
- # # 获取当前月
|
|
|
- # print('当前月', get_cur_month())
|
|
|
- # # 获取上一个月
|
|
|
- # print('上一个月', get_last_month_num())
|
|
|
- # # 获取上两个月
|
|
|
- # print('上两个月', get_last_month_num(number=2))
|
|
|
- # # 获取下一个月
|
|
|
- # print('下一个月', get_next_month())
|
|
|
- # # 获取下两个月
|
|
|
- # print('下两个月', get_next_month(number=2))
|
|
|
- # # 获取当前月的第一天
|
|
|
- # print('当前月的第一天', get_cur_month_start())
|
|
|
- # # 获取当前月的最后一天
|
|
|
- # print('当前月的最后一天', get_cur_month_end())
|
|
|
- # # 获取上个月的第一天
|
|
|
- # print('上个月的第一天', get_last_month_start())
|
|
|
- # # 获取下个月的第一天
|
|
|
- # print('下个月的第一天', get_next_month_start())
|
|
|
- # # 获取上个月的最后一天
|
|
|
- # print('上个月的最后一天', get_last_month_end())
|
|
|
- # # 获取下个月的最后一天
|
|
|
- # print('下个月的最后一天', get_next_month_end())
|
|
|
- dd = str(1650791368303)
|
|
|
- print(dd[0:10])
|
|
|
- print(dd[10:])
|
|
|
- dateArray = datetime.datetime.utcfromtimestamp(1650791368)
|
|
|
- print(dateArray.date())
|
|
|
- next_start_time, next_end_time = get_start_and_end_time(get_next_month_start(), '%Y-%m-%d')
|
|
|
- print(type(next_end_time))
|
|
|
- print('下月开始时间{}'.format(next_start_time))
|
|
|
- start_time, end_time = get_start_and_end_time(get_next_month_end(), '%Y-%m-%d')
|
|
|
- print('下月结束时间{}'.format(end_time))
|
|
|
+def time_format_date(timestamp, tz):
|
|
|
+ # 解析时区偏移量
|
|
|
+ tz_hours, tz_minutes = map(int, tz.split(':'))
|
|
|
+ # 将时间戳转换为 datetime 对象
|
|
|
+ dt = datetime.datetime.fromtimestamp(timestamp)
|
|
|
+ # 创建 timedelta 对象,表示时区偏移量
|
|
|
+ tz_offset = datetime.timedelta(hours=tz_hours, minutes=tz_minutes)
|
|
|
+ # 调整 datetime 对象的时区
|
|
|
+ dt = dt + tz_offset
|
|
|
+ # 格式化日期时间字符串
|
|
|
+ formatted_date = dt.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ return formatted_date
|
|
|
+
|
|
|
+
|
|
|
+def start_of_day_timestamp(timestamp):
|
|
|
+ # 将当前时间戳转换为 datetime 对象
|
|
|
+ dt = datetime.datetime.fromtimestamp(timestamp)
|
|
|
+
|
|
|
+ # 获取日期部分,并将时、分、秒和微秒设置为零
|
|
|
+ dt_start_of_day = dt.replace(hour=0, minute=0, second=0, microsecond=0)
|
|
|
+
|
|
|
+ return int(dt_start_of_day.timestamp())
|
|
|
+
|
|
|
+
|
|
|
+def get_previous_month_first_day(timestamp):
|
|
|
+ # 将时间戳转换为datetime对象
|
|
|
+ dt = datetime.datetime.fromtimestamp(timestamp)
|
|
|
+
|
|
|
+ # 获取上个月的年份和月份
|
|
|
+ previous_month_year = dt.year if dt.month > 1 else dt.year - 1
|
|
|
+ previous_month = dt.month - 1 if dt.month > 1 else 12
|
|
|
+
|
|
|
+ # 构造上个月第一天的datetime对象
|
|
|
+ previous_month_first_day = datetime.datetime(previous_month_year, previous_month, 1)
|
|
|
+
|
|
|
+ # 将上个月第一天的datetime对象转换为时间戳并返回
|
|
|
+ return int(previous_month_first_day.timestamp())
|
|
|
+
|
|
|
+
|
|
|
+def get_current_month_first_day(timestamp):
|
|
|
+ # 将时间戳转换为datetime对象
|
|
|
+ dt = datetime.datetime.fromtimestamp(timestamp)
|
|
|
+
|
|
|
+ # 获取当前月份的年份和月份
|
|
|
+ current_month_year = dt.year
|
|
|
+ current_month = dt.month
|
|
|
+
|
|
|
+ # 构造当前月份第一天的datetime对象
|
|
|
+ current_month_first_day = datetime.datetime(current_month_year, current_month, 1)
|
|
|
+
|
|
|
+ # 将当前月份第一天的datetime对象转换为时间戳并返回
|
|
|
+ return int(current_month_first_day.timestamp())
|
|
|
+
|
|
|
+
|
|
|
+def get_date_time(timestamp, timezone_offset):
|
|
|
+ # 计算时区偏移量
|
|
|
+ hours_offset = int(timezone_offset[1:3])
|
|
|
+ minutes_offset = int(timezone_offset[4:6])
|
|
|
+ offset = datetime.timedelta(hours=hours_offset, minutes=minutes_offset)
|
|
|
+
|
|
|
+ # 转换为日期时间对象
|
|
|
+ return datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone(offset))
|