我有一个具有两种不同格式日期值的 csv 文件,希望它们采用任何单一格式

Posted

技术标签:

【中文标题】我有一个具有两种不同格式日期值的 csv 文件,希望它们采用任何单一格式【英文标题】:I have a csv file with two different formats of date value, want them to be in any single format 【发布时间】:2016-11-08 09:42:28 【问题描述】:

我的 CSV 文件如下所示

id       date
1602    11/23/2015 14:10
1602    11/23/2015 22:45
1602    18/10/2011 09:19:46 AM
1702    18/10/2011 09:07:33 AM
1863    18/10/2011 09:07:35 AM
1436    18/10/2011 09:07:36 AM

我正在寻找类似的输出

id       date
1602    11/23/2015 14:10
1602    11/23/2015 22:45
1602    10/18/2011 09:19:46 AM
1702    10/18/2011 09:07:33 AM
1863    10/18/2011 09:07:35 AM
1436    10/18/2011 09:07:36 AM

【问题讨论】:

好吧,听起来您可能应该浏览文件并尝试使用您想要的格式解析每一行...如果它解析,请重新格式化到您确实想要的格式。到目前为止,您尝试了什么,出了什么问题? 请阅读***.com/help/how-to-ask 请添加详细信息,如预期输出、您尝试过的内容等。 我是编程新手,我尝试过使用 JAVA。截至目前,我能够从 CSV 中读取数据,之后我感到很震惊 您想向我们展示您现有的代码,并具体告诉我们您遇到的问题。如前所述:转到帮助中心并学习如何写问题;而不是仅仅重复你已经说过的话。 【参考方案1】:

我不知道你为什么要让这件事变得比现在困难得多。看来您实际上所做的只是(1)摆脱 CSV 文件的第一行; (2) 丢弃任何引号; (3) 将一组空格/制表符映射到单个空格; (4) 将换行符映射到空格。

所以。 . .以下怎么样? (我假设数据来自标准输入。)

sed 1d | tr -d /\"/ | tr -s "/[ \010\012]/ /"

'sed' 删除第一行;第一个 'tr' 去掉引号;第二个 'tr' 将空格、制表符和/或换行符映射到单个空格(\010 和 \012 分别是 ASCII TAB 和 ASCII NL 的八进制代码)。

【讨论】:

以上是关于我有一个具有两种不同格式日期值的 csv 文件,希望它们采用任何单一格式的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas数据框“日期”索引xlsx和csv中的不同格式

使用 nzload 上传具有两种不同日期格式的文件

在同一页面上使用两个具有两种不同日期格式的日期选择器

在csv文件中分割日期[重复]

如何使用python在一个图形中绘制具有不同日期时间的三个值?

将字符串转换为 Excel 日期和时间,具有特定的字符串格式