如何解决如何在python中将“日/月”字符串转换为日期并将其与Odoo日期字段进行比较?
我有一个 day/month
字符串,我想将该字符串转换为日期对象并将该月的最后一天与另一个日期进行比较
示例:
对于 08/2021
(2021 年 8 月),我想将该月的最后一天 (31-08-2021) 与另一个日期(日期字段)进行比较,
对于 02/2020
我要比较什么 29-02-2020
对于 02/2021
我要比较什么 28-02-2020
解决方法
如果您不想添加 dateutil,可以使用 calendar.monthrange
查找当月的最后一天。
import calendar
from datetime import datetime
def get_last_day_date(year_month_str):
date = datetime.strptime(year_month_str,"%m/%Y")
last_day = calendar.monthrange(date.year,date.month)[1]
return datetime(date.year,date.month,last_day)
get_last_day_date("08/2020")
# datetime.datetime(2020,8,31,0)
,
此示例向您展示了如何将“02/2020”转换为 Python datetime
以及如何获取该月的最后一天。您可以使用它来将结果与另一个 datetime
:
import datetime
from dateutil.relativedelta import relativedelta
date = '02/2020'
last_day = datetime.datetime.strptime(date,'%m/%Y') + relativedelta(day=31)
# last_day will be a datetime of the last day of the month which you can use to compare against another datetime
在此示例中,结果为 datetime.datetime(2020,2,29,0)
,因为 2020 年是闰年
b='08/2021'
a=b.split('/')
import calendar
import datetime
z=(str(calendar.monthrange(int(a[1]),int(a[0]))[1])+'-'+b.replace('/','-'))
d=datetime.datetime.strptime(z,'%d-%m-%Y').date()
print(d)
n=datetime.date.today()
print(n)
n<d
输出:
2021-08-31
2021-01-28
True
,
只需导入/使用 package com.example.pdfreader;
public class PDFDocument
{
String name,path;
public PDFDocument()
{
}
public PDFDocument(String name,String path) {
this.name = name;
this.path = path;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
库即可完成此操作,您可以在此处了解操作方法。
通过将字符串日期传递给方法。
datetime
通过在单行中修改
import datetime
def convert_string_to_datetime(self,datetime_in_string):
datetime_in_string = str(datetime_in_string)
datetime_format = "%Y-%m-%d %H:%M:%S"
datetime_in_datetime_format = datetime.datetime.strptime(datetime_in_string,datetime_format)
return datetime_in_datetime_format
new_datetime_field = convert_string_to_datetime(datetime_in_string)
转换成import datetime
new_datetime_field = datetime.datetime.strptime(YOUR_DATETIME_IN_STRING,"%Y-%m-%d %H:%M:%S")
后,现在可以进行比较了。
datetime
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。