时间分隔符的问题导入数据时,我们在时间格式方面遇到一些困难。
在我们的实验室中,我们有一组装有 Win7 或 Win10 的计算机,其时间格式设置各不相同。 当尝试将带有时间戳的数据导入 JMP12 和 14 时,这似乎会导致问题。 我们的时间戳格式为 yyyy-mm-dd hh:mm:ss (例如 2018-08-24 13:39:27),并且根据我们测试的计算机,导入要么成功要么失败,因为时间格式必须使用冒号或点。我们如何构建一个可以在所有机器上运行的导入脚本?
我们还想知道为什么 JMP 中没有固定的时间格式,无论 Windows 中的设置如何,都保持不变? 毕竟 ISO 8601 标准将冒号定义为分隔符。
回复:时间分隔符的问题事实证明,XanGregg 建议的设置正是我们正在寻找的设置。 如果有人稍后发现此对话,似乎也可以使用以下脚本更改此设置。
Set preferences( Use JMP Locale Settings( 1 ) );
我还按照马克贝利的建议,用正则表达式对我们的输入进行了一些调整,所以我也非常感谢这个技巧。
回复:时间分隔符的问题非常感谢 RegEx 的解决方法。 通过快速测试,它似乎可以帮助我们前进。 当我可以访问另一台计算机时,我还会使用“Windows 特定”设置进行一些测试。 希望这将成为我们的通用解决方案。
非常感谢您的帮助!
回复:时间分隔符的问题当我将Win10时间分隔符更改为“.”时并运行下面的脚本,它似乎工作正常,所以我遗漏了一些细节。

无论如何,这里有一些可能对您的案例有用的事情。
- “Windows Specific”下有一个 JMP 全局首选项,用于是否遵循系统区域设置
- 如果您将该列作为文本导入并稍后对其进行解析,则 Parse Date() 函数具有一个可以关闭的“使用区域设置”参数。
s = "time,
2018-08-24 13:39:27
2018-08-25 14:11:22
2018-08-26 16:33:44";
path = "$TEMP/times.csv";
Save Text File( path, s );
Open(path);
回复:时间分隔符的问题对困惑感到抱歉。
不,这种方式不起作用,因为参数定义了一组格式并且可能不包含正则表达式。 请参阅我的上一篇文章了解另一个想法。
回复:时间分隔符的问题假设您将时间戳作为字符串导入到名为“日期时间”的数据列中,则无论使用哪种格式(您描述的两种格式),使用此公式的新数字数据列都应该产生正确的日期:
Parse Date(
Regex( :Date Time,
"(\d{4}-\d{2}-\d{2} \d{2})[:\.](\d{2})[:\.](\d{2})",
"\1:\2:\3"
)
);回复:时间分隔符的问题我想知道我们是否在谈论同一件事,或者有一种我不熟悉的使用正则表达式的方法。 我会尽力更清楚地解释我们的问题。
我们的数据具有一致的格式(hh:mm:ss)。 那里的分隔符是总是冒号。 例如,我计算机上的 JMP 可以很好地处理这种格式,我只需从输入格式菜单中选择这种格式即可轻松导入此数据。 当我的同事尝试做同样的事情时,她计算机上的 JMP 无法将数据识别为时间。 在她的计算机上,时间格式必须为 hh.mm.ss(点作为分隔符)。 因此,为了编写适用于这两台计算机的导入脚本,我们必须首先确定 JMP 在该特定计算机上期望的时间格式是什么。
脚本中可以使用正则表达式来确定输入格式吗? 目前,我们必须为不同的机器使用不同的脚本(一种带有冒号,一种带有点)。
Format( "y.m.d h:m:s", 22, 0 ), Informat( "y-m-d h:m:s", 0 )<BR />
Format( "y.m.d h.m.s", 22, 0 ), Informat( "y-m-d h.m.s", 0 )<BR />
我们可以用这个来代替吗?
</CODE><CODE class=" language-jsl">Format( "y.m.d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 22, 0 ), Informat( "y-m-d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 0 )
回复:时间分隔符的问题这就是为什么我建议使用正则表达式。 您可以使用“[\.:]”或“\.|:”作为分隔符存在的表达式的一部分。 您无需预先确定使用哪种格式。
回复:时间分隔符的问题感谢您的建议! 我们尝试修改分隔符,这可以很容易地完成,但我们还没有找到一种方法来检测 JMP 期望的分隔符,根据相关机器,它们可以是点或冒号。
回复:时间分隔符的问题您可以使用正则表达式来匹配任一格式选项的部分以及字符函数,以生成一致的 JMP 日期时间值。