【问题标题】:Adding current year to an inputed date将当前年份添加到输入的日期
【发布时间】:2020-04-04 03:47:34
【问题描述】:

我编写了一个相当长的脚本来组织数据并进行一些计算等,然后将其全部保存到另一个位置的另一个 Excel 文件中。对于要运行的脚本,用户以 mmdd 形式输入日期,以便它可以找到具有该名称的文本文件以打开并运行计算。

当我想在 excel 文件的第一列中以 mm/dd/yy 形式输入完整日期以与前几年已经存在的数据保持一致时,我遇到的问题最后出现了。

这是我所拥有的:

mmdd = input("Enter txt file date in mmdd:")
#do a bunch of stuff to get new data
#get the date using mmdd
day = datetime.datetime.strptime(mmdd, '%m%d')
date = day.strftime('%m/%d')
#add data to excel file to new row without any data
row = ws.max_row + 1
new_row = [date, #all other data#]

当我运行它时,它将 mm/dd 添加到第一列没有问题。但是,我想将 当前年份 添加到末尾,即 mm/dd/19。

当我使用这个时:

day = datetime.datetime.strptime(mmdd, '%m%d')
date = day.strftime('%m/%d/%y')

我显然得到了 1900 年的垃圾年份,因为一开始没有指定年份。

我也试过了:

yr = datetime.datetime.now().year

但我不能让它与 mm/dd 结合而不抛出错误。

任何建议将不胜感激。

【问题讨论】:

  • this question 是否回答了您的问题?用now().year替换年份?
  • data = datetime(year=datetime.now().year, month=int(mmdd[:2]), day=int(mmdd[2:]))

标签: python python-3.x date datetime


【解决方案1】:

正如 Tadhg 所建议的,如果你使用 .repalace() 方法和 .now() 方法,你可能会得到你想要的。如果你运行这个:

import datetime

day = datetime.datetime.strptime("1102", '%m%d')
date = day.replace(year=datetime.datetime.now().year)
print(date)

你会得到:

2019-11-02 00:00:00

【讨论】:

  • 谢谢!这正是我想要的。
猜你喜欢
  • 2020-11-11
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多