我正在嘗試在 Google App Script 中格式化日期,然后將其存盤到 Google Sheet 中。一切正常,但問題是源日期沒有特定格式,日期可能有不同的格式,如DD-MM-YYYY、MM-DD-YYYY、YYYY-MM-DD或日期也可以帶有時間,然后我' ve 將其轉換為YYYY-MM-DD格式,然后保存在 google sheet 中。我嘗試使用以下代碼轉換為隱蔽:
var date = new Date("01-15-2022").toISOString().split('T')[0] // MM/dd/yyyy
Logger.log(date);
僅當源日期的格式為MM/dd/yyyy和yyyy/MM/dd時,此代碼才有效,僅當日期的格式為dd/MM/yyyy時,代碼不起作用。
我想要一種將所有日期格式轉換為單一格式的方法,例如yyyy/MM/dd
uj5u.com熱心網友回復:
我有個壞訊息要告訴你。無法從演算法上區分 01-02-2022(2022 年 2 月 1 日)和01-02-2022(2022 年 1 月 2 日)。所以從技術上講,這個源資料是臭名昭著的“垃圾”。
uj5u.com熱心網友回復:
不知何故,我設法找到了一個替代選項來使用下面的 Moment Js 庫來實作這一點是解決方案:
function myFunction() {
let formats = ["DD/MM/YYYY", "MM/DD/YYYY", "YYYY/MM/DD", "DD/MM/YYYY hh:mm:ss", "DD/MM/YYYY hh:mm:ss A", "MM/DD/YYYY hh:mm:ss A", "YYYY/MM/DD hh:mm:ss A"]
Logger.log(convertDate("5/1/2022 12:00:00 PM", formats));
}
function convertDate(date, formats){
eval(UrlFetchApp.fetch('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js').getContentText());
let dateMomentObject = moment(date, formats);
let dateObject = dateMomentObject.toDate();
let dateStr = moment(dateObject).format('YYYY-MM-DD');
return dateStr;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416111.html
標籤:
上一篇:如何平均電子表格中的錯誤
