我有一个将数据库数据导出为 CSV 格式的服务,但我现在无法更改它。
虽然执行查询返回标准 SQL 日期格式 -2014-12-26 19:41:23.012
但中间的 Node.js 中间件似乎将日期转换为 Javascript 标准日期格式:
new Date().toString();
// -> Fri Dec 26 2014 19:36:00 GMT-0800 (Pacific Standard Time)
令我沮丧的是,Excel 无法将其识别为日期格式,我不得不费尽心思将其分解成 Excel 可以识别的格式。
虽然我不太熟悉它,但我知道Custom
格式单元格属性可以帮助日期操作。
我要怎么做才能让 Excel 识别这种日期格式?
答案1
两天前我遇到了几乎完全相同的问题。日期是文本格式,如果不进行一些操作,excel 就无法转换它。以下是我必须对字符串进行的操作才能使其正常工作(使用 Excel 2010):
- 删除开头的‘Fri’和结尾的‘GMT...’。如果文本在 A1 中,则 B1 为:
=MID(A1,4,LEN(A1)-35
- 在日期和年份之间添加逗号。因此 C1 列为:
=LEFT(B1, 7) & "," & MID(B1,8,LEN(B1))
- 转换为日期/时间。D1 列:
=DATEVALUE(C1)+TIMEVALUE(C1)
根据空格的位置,您可能需要调整字符串索引。而且您仍需要使用自定义格式将显示更改为您想要的格式。
您也可以将其组合成一个长公式:
=DATEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))+TIMEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))
答案2
这风俗格式仅显示所需格式的文本或数字。但在此之后,Excel 必须先识别基础数据风俗格式就可以了。
在您的情况下,您需要首先获取 Excel 左侧的 25 个字符。
=LEFT(A1,25)
然后粘贴为值,然后应用日期格式Excel 将会识别它。
答案3
假设单元格 A1 的值为“2014 年 12 月 26 日星期五 19:36:00 GMT-0800(太平洋标准时间)”,则使用以下公式获得正确的日期输出
=DATEVALUE(MID(A1,9,2)&MID(A1,5,3)&MID(A1,12,4))
答案4
要将 JS new Date() 格式转换为 Excel 可读的格式,可以使用以下步骤:
- 获取日期的前 10 位数字:
2019-11-19T14:15:05.000Z -> =left(A1,10) = 2019-11-19
- 将结果值转换为数字:
2019-11-19T14:15:05.000Z -> =left(A1,10)*1 = 43788
- 将单元格的格式从“常规”更改为“短日期”或“长日期”:
2019-11-19T14:15:05.000Z -> =left(A1, 10)*1 = 43788 -> 更改为长日期格式 = 2019 年 11 月 19 日,星期二