Python SOS日期时间差24小时
因此,我得到了两年来每小时的多个数据(卫星数据)。从2019年1月1日00:00:00开始,到2020年12月31日23:00:00结束。我想在ArcGIS中以日期格式计算一个新字段。这就是为什么我需要一个python脚本。所以它应该是这样的:2019年1月1日00:00:00 AM,2019年1月1日01:00:00 PM。。。2019年1月1日下午23:00:00。所以在两年的时间里24小时。我的最后一个日期应该是2020年12月31日下午23:00:00。这有用吗 有什么建议吗 谢谢转发 您好,Python SOS日期时间差24小时,python,datetime,python-datetime,timedelta,Python,Datetime,Python Datetime,Timedelta,因此,我得到了两年来每小时的多个数据(卫星数据)。从2019年1月1日00:00:00开始,到2020年12月31日23:00:00结束。我想在ArcGIS中以日期格式计算一个新字段。这就是为什么我需要一个python脚本。所以它应该是这样的:2019年1月1日00:00:00 AM,2019年1月1日01:00:00 PM。。。2019年1月1日下午23:00:00。所以在两年的时间里24小时。我的最后一个日期应该是2020年12月31日下午23:00:00。这有用吗 有什么建议吗 谢谢转发
安德里亚你可以这样做
#!/user/bin/env python
# -*- coding: utf-8 -*-
from datetime import datetime
from typing import Iterator
from dateutil.rrule import rrule, DAILY, HOURLY
def between_date(start_date: str, end_date: str, freq: int = DAILY) -> Iterator[datetime.date]:
"""
generate dates form start_date and end_date
:param start_date: start period.
:param end_date: end period.
:return: iterator of dates.
:param freq: DAILY, MONTH etc..
"""
date_template = '%d/%m/%Y %H:%M:%S %p'
for df in rrule(freq=freq, dtstart=datetime.strptime(start_date, date_template),
until=datetime.strptime(end_date, date_template)):
yield df.strftime(date_template)
if __name__ == '__main__':
start_date = "1/1/2019 00:00:00 AM"
end_date = "1/1/2019 23:00:00 PM"
for d in between_date(start_date=start_date, end_date=end_date, freq=HOURLY):
print(d)
输出
01/01/2019 00:00:00 AM
01/01/2019 01:00:00 AM
01/01/2019 02:00:00 AM
01/01/2019 03:00:00 AM
01/01/2019 04:00:00 AM
01/01/2019 05:00:00 AM
01/01/2019 06:00:00 AM
01/01/2019 07:00:00 AM
01/01/2019 08:00:00 AM
01/01/2019 09:00:00 AM
01/01/2019 10:00:00 AM
01/01/2019 11:00:00 AM
01/01/2019 12:00:00 PM
01/01/2019 13:00:00 PM
01/01/2019 14:00:00 PM
01/01/2019 15:00:00 PM
01/01/2019 16:00:00 PM
01/01/2019 17:00:00 PM
01/01/2019 18:00:00 PM
01/01/2019 19:00:00 PM
01/01/2019 20:00:00 PM
01/01/2019 21:00:00 PM
01/01/2019 22:00:00 PM
01/01/2019 23:00:00 PM
您尝试了什么?能否添加所需的输入输出以使其更清晰?导入datetime a=datetime.datetime(2019,1,1,0,0,0)b=a+datetime.timedelta(小时=24)打印(a.time())打印(b.time())但是我不知道什么是表达式,什么属于代码块:/抱歉,我是一个绝对的python初学者,尤其是在ArcGIS中。例如,您期望的输入/输出是什么?