【问题标题】:Hi need to generate some valid date formate我需要生成一些有效的日期格式
【发布时间】:2021-03-11 16:23:14
【问题描述】:

我有一些 .ini "yyyymmdd" 格式的日期。

我的 .ini 文件详细信息:

[global]
date_with_interval = 20210311:3, 20200228:4

在上面这个变量中,我有两个用冒号分隔的值,第一个是日期和第二个间隔 所以基于需要获取一个日期序列的间隔值

#I need the output in this format

output = [[20210311,20210312,20210312],[20200228,20200229,20200301,20200302]]

我尝试过这种方式,但错过了一些要点。

import configparser
config_file= "file1.ini"
con.read(config_file)

def read(name):
    return con.get('global', name)

valid_date = []
data_date = read("date_with_interval")
date_info = data_date.split(",")
for date in date_info:
    date_format,interval = date.split(":")
    print("Date is:",date_format)
    print("Interval",interval)
    year,month,dd = date_format[0:4],date_format[4:6],date_format[6:8]
    print("year",year)
    print("month",month)
    print("date", dd)

【问题讨论】:

  • 那么你的问题是什么?什么不适合你?你有什么错误吗?
  • 为什么第一次约会是 11,12,12?不应该是 11、12、13 吗?

标签: python python-3.x list list-comprehension configparser


【解决方案1】:

可能想使用datetime 模块来添加时间增量:

import datetime
date_with_interval = ['20210311:3', '20200228:4']


output = []
for x in date_with_interval:
    t = []
    d, n = x.split(':')
    n = int(n)
    for i in range(n):
        t.append(datetime.datetime.strftime(datetime.datetime.strptime(d, "%Y%m%d")+datetime.timedelta(days=i), "%Y%m%d"))
    output.append(t)

输出

[['20210311', '20210312', '20210313'],
 ['20200228', '20200229', '20200301', '20200302']]

【讨论】:

  • 谢谢@Chris
猜你喜欢
  • 2012-02-24
  • 1970-01-01
  • 2015-11-03
  • 2014-03-02
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
相关资源
最近更新 更多