datetime日,周,月,季

import datatime
date = datetime.datetime.now()
 

当天:

newdate = datetime.datetime.now()
condtions = {'datadate': newdate}

昨天:
newdate = date + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

本周初:
newdate = now - datetime.timedelta(days=now.weekday())
condtions = {'datadate': newdate}

本周末:
newdate = now + datetime.timedelta(days=6 - now.weekday())
condtions = {'datadate': newdate}

上周初:
newdate = now - datetime.timedelta(days=now.weekday() + 7)
condtions = {'datadate': newdate}

上周末:
newdate = now - datetime.timedelta(days=now.weekday() + 1)
condtions = {'datadate': newdate}

月初:
newdate = date.replace(day=1)
condtions = {'datadate': newdate}

月末:
year = date.year
month = date.month
a, b = calendar.monthrange(year, month)           # a,b——weekday的第一天是星期几(0-6对应星期一到星期天)和这个月的所有天数
newdate = datetime.datetime(year=year, month=month, day=b) # 构造本月月末datetime
condtions = {'datadate': newdate}

上月末:
date_now = date.replace(day=1)
newdate = date_now + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上月初:
date_now = date.replace(day=1)
date_now = date_now + datetime.timedelta(days=-1)
newdate = datetime.datetime(date_now.year, date_now.month, 1)
condtions = {'datadate': newdate}

年初:
newdate = date.replace(month=1, day=1)
condtions = {'datadate': newdate}

年末:
newdate = date.replace(month=12, day=31)
condtions = {'datadate': newdate}

去年初:
newdate = date.replace(month=1, day=1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, 1, 1)
condtions = {'datadate': newdate}

去年末:
newdate = date.replace(month=1, day=1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

季初:
month = (date.month - 1) - (date.month - 1) % 3 + 1
newdate = datetime.datetime(date.year, month, 1)
condtions = {'datadate': newdate}

季末:
month = (date.month - 1) - (date.month - 1) % 3 + 1
if month == 10:
  newdate = datetime.datetime(date.year + 1, 1, 1) + datetime.timedelta(days=-1)
else:
  newdate = datetime.datetime(date.year, month + 3, 1) + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上季初:
month = (date.month - 1) - (date.month - 1) % 3 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, newdate.month - 2, 1)
condtions = {'datadate': newdate}

上季末:
month = (date.month - 1) - (date.month - 1) % 3 + 1 # 10
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

半年初:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
condtions = {'datadate': newdate}

半年末:
month = (date.month - 1) - (date.month - 1) % 6 + 1
if month == 7:
  newdate = datetime.datetime(date.year + 1, 1, 1) + datetime.timedelta(days=-1)
else:
  newdate = datetime.datetime(date.year, month + 6, 1) + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上个半年初:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, newdate.month - 5, 1)
condtions = {'datadate': newdate}

上个半年末:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}


月平均值:
ms_newdate = date.replace(day=1)
me_newdate = date
new_date = (ms_newdate, me_newdate)

季平均值:
month = (date.month - 1) - (date.month - 1) % 3 + 1
ss_newdate = datetime.datetime(date.year, month, 1)
se_newdate = date
new_date = (ss_newdate, se_newdate)

半年平均值:
month = (date.month - 1) - (date.month - 1) % 6 + 1
hs_newdate = datetime.datetime(date.year, month, 1)
he_newdate = date
new_date = (hs_newdate, he_newdate)

年均值:
ys_newdate = date.replace(month=1, day=1)
ye_newdate = date
new_date = (ys_newdate, ye_newdate)


if condtions:
  query_res = Entry.objects.filter(**condtions).filter().exclude()
if new_date:
  query_res = Entry.objects.filter(datadate__range=new_date).filter().exclude()

datetimePython中的一个模块,用于处理期和时间。通过datetime模块,我们可以方便地进行期和时间的转换和计算。 为了将期时间转换为字符串类型,我们可以使用datetime.datetime.strftime()方法。这个方法接受两个参数:第一个参数是期时间对象,第二个参数是字符串的格式。例如,我们可以使用以下代码将当前期时间转换为字符串形式: ```python import datetime now_date = datetime.datetime.now() str_date = datetime.datetime.strftime(now_date, "%Y:%m:%d %H:%M:%S") print(str_date) ``` 这将输出当前期和时间的字符串形式,格式为"年-- 时:分:秒",例如"2021:11:20 14:30:45"。 另外,在处理特殊格式的字符串类型时,我们也可以使用datetime.datetime.strptime()方法将字符串转换为期时间对象。例如,如果我们有一个字符串表示为"2012-05-29T19:30:03.283Z",可以使用以下代码将其转换为期时间对象: ```python import datetime date_time = '2012-05-29T19:30:03.283Z' date_time = datetime.datetime.strptime(date_time, "%Y-%m-%dT%H:%M:%S.%fZ") print(date_time) ``` 这将输出转换后的期时间对象,例如"2012-05-29 19:30:03.283000"。 此外,常见的期时间字符串类型,如"2012-05-29 19:30:03",也可以使用datetime.datetime.strptime()方法进行转换。例如: ```python import datetime date_time = '2012-05-29 19:30:03' date_time = datetime.datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S") print(date_time) ``` 这将输出转换后的期时间对象,例如"2012-05-29 19:30:03"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [时间加减(年datetime](https://blog.csdn.net/weixin_43614573/article/details/114665543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Datetime模块常用方法(年、度、)](https://blog.csdn.net/weixin_45707730/article/details/107987538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值