我有一个小项目,我在 firebase 数据库中非正式地将日期写为字符串。我需要将这些日期转换为日期时间格式。这是假设日期有效。网站中的输入不能修改(这是解决这个问题的全部前提)。还假定月份按名称书写,月份采用 YYYY 格式。
我对这些条目的一些示例进行了分类:
几乎明确:
“2017年7月13日”、“2008年12月3日”、“2016年12月”、“2017年12月21日”、“2020年”、“2017年11月24日”、“2012年3月14日”、“2016年7月22日”、“2016年7月22日” 、“2011 年 1 月 17 日”、“2013 年 7 月获得”...
这些会相对容易。年份总是一个 4 位数字,日期是一个 2 位数字,月份是一个字符串。这些可以被检查/比较,如果他们错过了确切的日期(1 或 2 位数字),我可以假设它可以作为第一个(一个月中的一天),同样适用于没有指定的月份(假设为 1 月)。
其他简单的字符串:
“当组准备好时”、“未指定”、“取消”、“设置”。
这些不包含日期,因此它们不重要。只需检查没有数字即可完成工作。这些可以设置为 00-00-0000,没关系。
更难的:
“12 或 24 个月内”、“2013 年第四季度”、“2019 年深秋”
我刚在想:
如果我读“内”,我会计算当前日期,加上它后面的数字(天、月、年)。
如果我将 Q(四分之一)定义为地图
Q={1:(1,2,3), 2:(4,5,6), 3:(7,8,9), 4:(10,11,12)}
和话
when = {"Early" : 1, "Mid": 2, "Late": 3}
季节也是如此。
例如,我可以访问第四季度的 Q 的第 4 个元素并获取其月份,或作为季节 ["spring"] 的晚春并获取“早、中、晚”月份。
回到问题:
我不确定我是否应该使用正则表达式、映射和如此多的比较来解决这个问题,这会引入很多错误,或者使用某种 AI,但我对这个主题还不太精通。
那么,回到问题,您将如何处理此类问题?
有没有可能有帮助的图书馆?
我觉得这里没有一个非常简单的实现,或者我知道的方法效率低下并且需要大量硬编码。
相关分类