fil88 发表于 2024-1-26 11:50

时间格式统一转换

本帖最后由 fil88 于 2024-1-26 13:24 编辑

23-10-21 ****
02-7         
2-7
1周前      
1月前
1天前
1分钟前
1小时前
07月18日 10:40
23年12月13日 *****2023年12月13日
2023.09.11
这些时间格式都是在文本中的某一位置如何提取出他们转换为统一的时间格式有什么比较好的解决办法吗?(ps:这些时间都是从数据库提取来的每条记录都包含上面的某一种格式,最好有python的解决办法。)
1.从文本中提取出时间来
2.将提取的时间转为统一格式时间格式
3.插入数据库,数据库的字段类型是datetime
我想实现上方的功能有没有什么好的解决办法或者好的库
麻烦各位大佬帮忙看看{:1_893:}{:1_893:}{:1_893:}

hjxhjxjx 发表于 2024-1-26 12:52

我一般用时间戳,或者数据库自带的datetime
js的话有相关的第三方插件/库,别的语言应该也有

iaoedsz2018 发表于 2024-1-26 14:16

楼上说得对,时间戳是通用方案,所有语言都支持的

fil88 发表于 2024-1-26 16:23

hjxhjxjx 发表于 2024-1-26 12:52
我一般用时间戳,或者数据库自带的datetime
js的话有相关的第三方插件/库,别的语言应该也有

时间戳好说就是从文本中提取不知道有什么好的解决办法

wushaolaiye 发表于 2024-1-26 16:23

可以的。谢谢分享

know1234 发表于 2024-1-26 16:42

你这一周前 、一天 、一个月 太模糊了

fil88 发表于 2024-1-26 16:57

know1234 发表于 2024-1-26 16:42
你这一周前 、一天 、一个月 太模糊了

要处理的数据就这样没办法:'(weeqw

know1234 发表于 2024-1-26 16:59

fil88 发表于 2024-1-26 16:57
要处理的数据就这样没办法

你这应该能获取到时间戳,

gun008 发表于 2024-1-26 17:22

可以先写两组正则, 一组是有格式的日期,一组是"1x前", 每组循环处理

110350 发表于 2024-1-27 12:18

看了楼主描述,我理解这部分算是数据清洗方面的工作了。
说下我想到的思路:
1. 把待转换的数据(提取的时间信息)分类 ,提取的日期信息设置为A列,分类设为B列并做标识,用于转换规则判断使用;
2. 设定基准时间:由于有像“1周前”这样的模糊时间,为了方便转换,需要有对应的时间参考值(如2023-11-2,也可以用时间戳或其它时间字段),设为C列;
   重要提示:
   当用时间戳做参考值,需要考虑记录的时间戳与记录内的时间信息是否一致:
   如记录A,应该在2023年6月29号录入,但实际录入是2023年7月1号,这时用时间戳做计算时,A记录中的1周前的时间就会有很大差异
   根据之前的分类标识,使用不同的转换规则,对提取的日期进行时间转换
   3.1 正常时间
   3.2 比较标准的时间 2023.09.11,进行简单的格式化
   3.3 X前的时间:提取数值,根据分类标识,进行相应的时间计算
       数据:1周前(同类操作)
           分类:周前
           数值:1
           操作:基准时间-1周
   3.4 02-7和2-7 (字符截取)
           分类:1个-
           数值:月2、日7
           操作:年(基准时间)-月2-日7
   3.5 23-10-21 **** (字符截取)
           分类:2个-
           数值:年23、月10、日21
           操作:年(基准时间)-月10-日21 (需要注意23年份和基准时间的年份是否一致)               
   3.6 07月18日 10:40 (字符截取)
           分类:年月小时
           数值:月7、日18 小时10:40
           操作:年(基准时间)-月7-日18 10:40
   3.7 23年12月13日 *****2023年12月13日 (字符截取、替换)
       分类:年月日-年月日
           数个:前面 年23
           操作:把前面的23替换为 年(基准时间的年)
          
页: [1]
查看完整版本: 时间格式统一转换