需要在 JMP 15 中将日期格式从字符转换为数字的帮助你好,
我的 Excel 工作表的日期格式为:2020 年 11 月 18 日星期三中午 12:45:00。导入 JMP 15 后,它会被读取为字符。
- 您能否分享一种将日期从字符格式转换为数字连续格式(例如,yyyy-mm-dd hh:mm)的方法? 我附上了 JMP 文件供您参考。
- 有没有办法在导入过程中应用正确的(数字)日期格式?
提前致谢。
数据存取回复:需要帮助在 JMP 15 中将日期格式从字符转换为数字这里有使用正则表达式的另一种可能性,可能最短的实现是下面的版本 2,在公式中另外使用 informat() 。 从日期字符串中读取信息后,可以通过多种方法将其转换为数字日期。
如果 Excel 中有数字形式的日期,最好更改 Excel 中的格式,以便 JMP 可以读取。
正则表达式很棒,我喜欢它!
Names Default To Here( 1 );
// AA for conversion of month
month_AA = Associative Array(
{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}
);
date_str = "Wednesday, November 18, 2020, 12:45:00 PM";
date_str = "Friday, November 20, 2020, 8:10:00 AM";
regex_str = "(\w+), (\w+) (\d+), (\d+), (\d+):(\d+):(\d+) (PM|AM)";
// 1st version generating a list and building string thereof
date_component_lst = Regex Match( date_str, regex_str );
date_component_lst[6] = char(num(date_component_lst[6]) + match(date_component_lst[9], "AM", 0, "PM", 12));
date_str1 = date_component_lst[5] || "-" || month_AA[date_component_lst[3]] || "-" || date_component_lst[4] || "T" || date_component_lst[6] || ":"
|| date_component_lst[7] || ":" || date_component_lst[8];
// 2nd version generating a string, to be used by "Parse Date ()" do directly convert it into a date
date_str2 = Regex( date_str, regex_str, "\3 \2 \4 \5:\6:\7 \8" );回复:需要帮助在 JMP 15 中将日期格式从字符转换为数字这是获得您想要的东西的强力方法。我附上了完整的数据表。

If( Row() == 1,
monthList = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November",
"December"}
);
myDate = Date MDY(
Contains( monthList, Word( 2, :Name( "Current Date Format (character)" ), ", " ) ),
Num( Word( 3, :Name( "Current Date Format (character)" ), ", " ) ),
Num( Word( 4, :Name( "Current Date Format (character)" ), ", " ) )
);
If(
Word( -1, :Name( "Current Date Format (character)" ), ", " ) == "PM" & Num(
Word( 5, :Name( "Current Date Format (character)" ), ",: " )
) < 12,
myDate = myDate + Num( Word( 5, :Name( "Current Date Format (character)" ), ",: " ) ) * 3600 + 3600 * 12,
myDate = myDate + Num( Word( 5, :Name( "Current Date Format (character)" ), ",: " ) ) * 3600
);
myDate = myDate + Num( Word( 6, :Name( "Current Date Format (character)" ), ",: " ) ) * 60 + Num(
Word( 7, :Name( "Current Date Format (character)" ), ",: " )
);