Utilities.formatDate返回一個字符串。它不會像JavaScript的新Date()那樣返回日期對象,因此你會得到這個錯誤。
你可以做這樣的事情讓你的一年,並保留您的格式字符串現在
var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
var dt = new Date(now) // This not the same as new Date()
var year = dt.getFullYear()
希望幫助!
編輯
使用下面的功能:
function getDate(){
var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
var dt = new Date(now)
Logger.log(now)
Logger.log(dt.getFullYear())
Logger.log(dt.getDate())
Logger.log(dt.getMonth() + 1) //add 1 to compensate for the month index starting at 0, i.e Jan = 0, Feb =1, March = 2.... Dec = 11
}
我得到這個日誌
[17-04-04 20:35:03:355 CDT] Tue Apr 4 2017 20:35:03
[17-04-04 20:35:03:355 CDT] 2017.0
[17-04-04 20:35:03:356 CDT] 4.0
[17-04-04 20:35:03:356 CDT] 4.0
正如你可以看到保留日期,年份和月份從作爲現在字符串設置在代碼的第一行。
謝謝!但在這種情況下,我無法保留我的時區。它採用默認時區。我如何在我的時區獲得日,月和年? – Jona
我有點失落!新的日期對象現在使用var創建,所以它現在將保留字符串的日期,月份和年份。不知道它如何默認爲默認時區! –
這是正確的!萬分感謝。我使用getDay()函數,這就是爲什麼我無法獲得正確的一天。 – Jona