设置 CSV 导入默认日期时间格式我一直在这里使用脚本的修改版本合并多个 txt 或 csv 文件导入多个(1000 个)CSV 文件。 问题是它会导入 MM/DD/YY 中的任何日期,如果您不住在美国,这意味着日期会在正确和不正确之间来回切换。
我发现的唯一解决方案是您可以在创建临时文件以保存数据时指定导入设置:
dt=open(fileopen,private,
New Column( "CycleStartDate&Time",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 22, 0 ),
Input Format( "d/m/y h:m:s", 0 )
),
New Column( "CycleEndData&Time",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 22, 0 ),
Input Format( "d/m/y h:m:s", 0 )
)
);
这似乎是一种倒退的方式,就好像日期字段的名称发生变化一样,它将恢复为 MM/DD/YY!
我已经挠头了大约一个半小时(如果你是美国人,则为 30:01),但找不到更好的方法来做到这一点......
回复:设置 CSV 导入默认日期时间格式欢迎!
如果您可以访问 JMP 14 并打开 1000 个 CSV,请查看多文件导入。 它可能会快很多,因为它使用线程一次打开多个文件。
回复:设置 CSV 导入默认日期时间格式感谢您的全面回复! 我必须仔细考虑您发布的解决方法,以了解如何将其合并到我的脚本中回复:设置 CSV 导入默认日期时间格式
几个答案,没有一个是完美的:
- 在 JMP 14 中,您可以使用多文件导入,这将保留字符格式的数据。 然后,您可以使用适当的数据格式、手动或使用脚本将列格式从字符更改为数字。
- JMP 的文本文件导入查看 a 列中的所有日期以找到大于 12 的日期以推断正确的格式;目前回退是 mm-dd-yyyy。 我将考虑为此创建一个偏好。
首先,创建一个包含不明确列的表:
filename = savetextfile(
"$temp/date.csv","date1,date2
31/10/2018 23:59:59,2/5/2018 00:00:00
1/9/2018 00:00:00,3/7/2018 00:00:00"
);
// date1 is clearly mm/dd/yy
// date2 is not clear, there are no days > 12
dt = open(filename);
// examine what happened
dt<dt<<newcolumn("month2",formula(month(date2)));
date1 is d/m/y, date2 is m/d/y, source script high lighteddate1 is d/m/y, date2 is m/d/y, source script high lighteddate1 是 d/m/y,date2 是 m/d/y,源脚本突出显示
源脚本看起来像这样
High lighting the two date formatsHigh lighting the two date formats高亮两种日期格式
JSL能编辑源脚本,替换所需的格式。 然后运行修改后的脚本并添加一些列来展示月份:
script = dt<close(dt,"nosave"); // no longer needed
// change m/d/y to d/m/y
substituteInto(script,"m/d/y h:m:s","d/m/y h:m:s");
// re-open the table with the modified script
dt = eval(script);
// examine what happened
dt<dt<<newcolumn("month2",formula(month(date2)));
date2 is now d/m/ydate2 is now d/m/ydate2 现在是 d/m/y
回复:设置 CSV 导入默认日期时间格式除了在将数据导入其中之前使用每个列设置创建一个全新的临时文件之外,我还没有找到一个好的解决方案。
有谁知道如何修复此文件导入错误?
回复:设置 CSV 导入默认日期时间格式事实上,该解决方案不起作用:例如,保存为“10/1/2018 9:50:46”的日期被导入 JMP 为“01/10/2018 09:50:46”。