为了账号安全,请及时绑定邮箱和手机立即绑定

在字符串中查找和格式化非正式日期的正确方法是什么?

在字符串中查找和格式化非正式日期的正确方法是什么?

慕工程0101907 2021-06-03 18:41:54
我有一个小项目,我在 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,但我对这个主题还不太精通。那么,回到问题,您将如何处理此类问题?有没有可能有帮助的图书馆?我觉得这里没有一个非常简单的实现,或者我知道的方法效率低下并且需要大量硬编码。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号