需要在 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)" ), ",: " )
);