日期时间格式问题
问候,
我在从 csv 文件导入日期时间格式时遇到问题。原始数据内容的示例是
2008 年 9 月 17 日 02:55:16 上午
2014 年 9 月 17 日 00:44:41 上午
17/09/30 17:57:06 下午
2007 年 10 月 17 日 00:26:32 上午
格式为 yy/mm/dd hh:mm:ss AM。问题在于 JMP 未将数据转换为正确的格式。直接导入会导致
17/09/2008 02:55:16 上午;这是错误的日期。
我尝试使用以下格式设置该列的格式
列(dt1, 2) <<设置名称("日期和时间")<<数据类型("数字")<<设置建模类型(连续<<信息("y/m/dh:m:s")< <格式(“日/月/年:分:秒”);
结果是一样的 à 2008/09/17 02:55:16 AM
另一种方法,插入新列并使用公式
dt1 <<新列("日期", 数字, 连续, 格式日期("y/d/m"), 公式( Left("20"||Munger(Loc,6,"20",""), 10 )));
结果是一个字符串2017/09/08;但输出需要是数字。从视觉上看,又近了一步。
由于事情比较接近,因此实现了接下来的三段代码。
dt1 <<新列("日期1", 数字, 连续, 格式日期("y/d/m"), 公式( Informat(Left("20"||Munger(Loc,6,"20","") , 10))));
dt1 <<新列("日期2",数字,连续,格式日期("yyyy/dd/mm"),输入格式("yyyy/dd/mm"),公式(解析日期(Left("20"||)芒格(Loc,6,"20",""), 10))));
dt1 <<新列("Date3",数字,连续,格式日期("yyyy/dd/mm"),输入格式("yyyy/dd/mm"),公式( As Date(Left("20"||))芒格(Loc,6,"20",""), 10))));
结果是
日期 1 列 --> 3587673600
日期2列 --> 3587673600
日期 3 列 --> .
日期 1 和日期 2 结果是数字,但格式错误。如何获得正确的格式,即数字、连续和日期格式?谢谢你的帮助。
你好卡梅伦,
我掌握了具有相同格式的其他 csv 文件。我按照您的指示使用了不同的 csv 文件,这次它按照您的建议工作。谢谢
我猜您做错了什么,因为我能够正确导入您作为示例提供的所有值。我将它们粘贴到 Excel 中,另存为 CSV,然后使用我概述的步骤导入并得到:


你好卡梅伦,
感谢你能这么快回复。你的建议是我最初的想法,但它不起作用。JMP 处理该文件并自动将日期更改为不正确的日期。例如,17/09/08 02:23:52 导入为 17/09/2008 02:23:52 AM;这是错误的。由于输出不正确,我不得不探索其他选项(JSL)-修改并更正输出。谢谢您的意见。非常感谢。
你好@阿特米奥,
这实际上是一个非常简单的修复,不需要编写脚本(尽管您可以编写脚本)。如果您没有直接输入日期格式,JMP 将进行猜测。两位数年份经常会出现这种错误。当你打开文件时,你应该看到一些像这样的选项(至少在 Windows 上):
打开时请务必选择“带预览的数据”,以便您有机会指定日期列的信息。您将看到一个窗口,可让您修改 csv 文件的导入设置。如果单击“下一步”,您将在下一页上设置信息设置。
如果您单击需要设置的日期格式的列旁边的红色箭头,您将获得可用信息的列表。选择时间 >“y/m/dh:m:s”。现在您可以导入了。
如果您想了解如何编写此导入设置的脚本,请查看结果数据表上的源脚本。
希望有帮助!