在JMP 15中需要幫助將日期格式從字符轉換為數字你好
我的Excel工作表的日期格式為:2020年11月18日星期三,下午12:45:00。導入JMP 15後,將其作為字符讀取。
- 您能否分享一種將日期從其字符格式轉換為數字連續格式的方法(例如yyyy-mm-dd hh:mm)? 我已附上JMP文件供您參考。
- 有沒有一種方法可以在導入期間應用正確的(數字)日期格式?
提前致謝。
數據表回复:在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)" ), ",: " )
);回复:在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" );