在Excel中将日期和时间转换为ISO yyyy-mm-dd

时间:2016-06-15 22:54:03

标签: excel excel-formula

在我在Excel中打开的csv文件日期格式化为“2014-08-28 09:03:19.789”。

如何在Excel中将上述内容转换为yyyy-mm-dd(2014-08-28)?

我尝试将列设置为yyyy-mm-dd但不会更改。

3 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的Excel? (我不确定这是否重要。)

如果您尝试在格式选择器框中输入yyyy-mm-dd,则无效。

enter image description here

您需要打开自定义格式对话框,然后在其中键入yyyy-mm-dd作为新格式。

enter image description here enter image description here

答案 1 :(得分:1)

使用工作表单元格上的Text to Columns向导,或使用数据功能区Importing文件,►获取外部数据标签►来自文字。

对于该列,选择Space作为分隔符,并在步骤3中选择YMD作为分隔符。完成后,根据需要自定义日期列和时间列的格式。

如果您需要在同一单元格中使用整个日期/时间戳,请在第三列中将它们一起添加,并根据需要进行格式化。

答案 2 :(得分:0)

无论您的系统设置如何,此解决方案都应该有效,并且基于您的日期时间值在导入到Excel中后确实是一个字符串。此解决方案将假设您的日期在A1

首先剥离年份:

=left(A1,4)

然后删除月份:

=mid(A1,6,2)

然后剥离一天:

=trim(mid(A1,9,2))

请注意,如果您知道从单位数天开始有一个前导零,那么您可以放弃修剪功能。

现在您可以使用日期函数将日期转换为Excel格式日期,并在上面的信息中替换。

=Date(left(A1,4),mid(A1,6,2),trim(mid(A1,9,2)))

如果您的单元格格式不正确,您可能会得到一个像420303这样的整数或类似的东西它自1900年1月0日以来在Windows操作系统上的天数,就像1904年以来的Mac一样。

所以当你重复这个过程的时候,我建议你首先尝试选项A),如果它不起作用,你可以尝试选项B)

选项A)用于时间快捷方式

If you time also show trailing 0 ie 9.000 for seconds then you might get away with:

=Timevalue(right(A1,12))

现在,如果这对您不起作用,我们可以将12调整为:

LEN(A1)-Find(" ",A1)

现在,如果选项A和使用时间值对您不起作用,那么我们需要进入并撕掉小时分钟和秒钟,并且基本上执行与上述日期相同的过程。

选项B)被单位

撕掉

要使用时间:

=MID(A1,FIND(" ",A1)+1,2)

要使用分钟:

=MID(A1,FIND(":",A1)+1,2)

要使用秒数

=RIGHT(A1,LEN(A1)-FIND(".",A1)+3)

这假设您的单位数秒0-9的前导0。

现在您可以将所有这些内容放入TIME公​​式中以获得以下内容

=TIME(MID(A1,FIND(" ",A1)+1,2),MID(A1,FIND(":",A1)+1,2),RIGHT(A1,LEN(A1)-FIND(".",A1)+3))

现在,由于整数和时间的天数被保存为十进制值,我们可以将日期和时间公式与+结合起来,现在你应该准备好将整个事情应用于它。

=Date(left(A1,4),mid(A1,6,2),trim(mid(A1,9,2)))+TIME(MID(A1,FIND(" ",A1)+1,2),MID(A1,FIND(":",A1)+1,2),RIGHT(A1,LEN(A1)-FIND(".",A1)+3))