Excel错误的时间戳格式识别

时间:2017-02-14 05:28:30

标签: excel date

我正在尝试打开一个CSV文件,其中包含名为 ts 的列,该列在整个文件中具有以下模式中的时间戳

12/31/2016 20:40
mm/dd/yyyy hh:mm

现在,当我在Excel中打开它时,其中一些不会被识别出来。

问题似乎是Excel以dd/mm/yyyy hh:mm格式自动识别它,所以当日期是11/13/2016 0:00时,它无法识别它(因为第13个月)。

enter image description here

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您会发现,即使Excel正在识别日期,它也会让数月和日期重新回到正前。

直接打开.csv文件时(例如,从Windows资源管理器中双击它或选择文件>从Excel中打开),Excel将尝试根据您当地的时间格式解析任何日期。在直接打开文件时更改日期解析方式的唯一方法是更改​​您可能不想做的本地时间格式。

解决方法是使用文本导入向导在Excel中打开文件,您可以在其中明确说明日期已存储在文本文件中的格式。

  1. 打开新工作簿
  2. 转到“数据”标签;在“获取外部数据”组中,单击“从文本
  3. 选择您的文件,然后点击导入
  4. 步骤1:选择分隔并选择下一步
  5. 第2步:如果它是真正的.csv,请选择逗号作为唯一的分隔符。 (请注意,从其他系统导出的数据通常以制表符分隔,而不是以逗号分隔。但是,.csv文件扩展名仍用于指示文件在Excel(或类似)中打开。如果选择逗号isn&#39 ; t正确拆分列,尝试选择Tab作为分隔符。当您的数据已正确拆分为列时,请按Next。)
  6. 步骤3:选择具有日期的列,然后将列数据格式设置为日期,并在下拉列表中选择MDY。它应该如下所示: Text Import Wizard
  7. 点击完成
  8. 选择数据的去向,然后点击确定
  9. 您现在应该打开数据,正确解释日期并以本地日期格式显示(dd / mm / yyyy)。

    如果您想在一列中保留完整的日期和时间,则需要执行其他工作,因为无法告知Excel正确解释与您的本地不匹配的日期/时间字符串格式。

    首先按照上述步骤操作,但在步骤6中,选择“文本”作为数据格式。这是确保Excel不会尝试解释任何日期(日期小于12)的必要条件。

    然后,如果您的日期始终为mm / dd / yyyy hh:mm格式(包括单位数天,月和小时的前导零),则以下公式将转换单元格A1中的日期/时间字符串到您可以正常格式化和使用的日期/时间序列:

    =DATE(MID(A1,7,4),LEFT(A1,2),MID(A1,4,2)) + TIMEVALUE(RIGHT(A1,5))
    

答案 1 :(得分:0)

这种情况正在发生,因为您获得的输出日期是文本格式,而不是日期格式。以下是解决案例以获取 mm / dd / yyyy hh:mm 格式的输出的技巧。您可以将格式更改为所需的格式。

如果文本日期在A列中,则公式为 -

=DATE(MID(A3,SEARCH("/",$A3,SEARCH("/",$A3,1)+1)+1,4),LEFT(A3,SEARCH("/",A3,1)-1),MID($A3,SEARCH("/",$A3,1)+1,SEARCH("/",$A3,SEARCH("/",$A3,1)+1)-SEARCH("/",$A3,1)-1))+TIME(HOUR(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1))),MINUTE(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1))),SECOND(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1))))

enter image description here

希望这会有所帮助。如果满意则评分。 :)

答案 2 :(得分:0)

我已将文本导入向导方法作为单独的答案,因为它有一些有用的信息。但是,我已经意识到,如果我们要走的是需要使用公式的路径,那么我们也可以在正常打开文件后使用公式!

以下公式适用于存储为mm / dd / yyyy hh:mm

的所有日期/时间
{{1}}

公式首先检查Excel是否将值解释为日期,当日期小于或等于12时发生。如果有,则Excel已交换日期和月份,因此公式将它们交换回来。或者,如果Excel没有将该值解释为日期(当日期大于12时发生),则它仍然是文本,并在重新排列文本字符串后生成日期/时间。