5

我在Google App電子表格中以'dd/mm/yyyy'格式和時間列'HH:MM AM/PM'格式顯示日期列。在應用程序腳本中,我想將這兩個值作爲日期時間加入。我怎樣才能做到這一點?如何在Google Apps Spreadsheet腳本中將日期和時間合併爲日期時間?

示例日期:13/12/2010,時間:下午4:30 然後,我希望將'13/12/2010 4:30 PM'等組合值作爲日期時間對象。

我試圖解析日期和時間分別使用得到年,getDay JS功能。並建立使用

new Date(year, month, day, hours, minutes) 

的新日期,但由於某些原因,時間「4:30」被顯示爲一個完整的怪異日期像1899年11月30日10:30。我可以準確地提取年,日,月,但不是小時和分鐘。

回答

3

伊夫得到這個回答this谷歌Apps的論壇主題。 「

」首先,日期和時間(格式除外)沒有區別,它們都是Date對象。現在問題出現。 電子表格中日期/時間值的數字是因爲「時間」實際上是數字的小數部分,所以如果在電子表格中輸入0(零),然後選擇日期時間格式,則會看到時間是「12/30/1899 0:00:00「,即在不同的電子表格中,使用不同的時區配置,時期可能會改變,如果您在兩個電子表格中使用相同的數值(例如使用ImportRange)不同的行爲對我來說很奇怪,但並不總是這樣,但谷歌似乎認爲這對用戶更好,因爲如果更改電子表格時區設置,日期將會不能直觀地改變,例如如果您在電子表格中輸入「1/1/10 14:00」,然後將時區更改爲其他任何時區,則日期/時間不會更改。在新的時區仍然是14:00。

現在,GAS時代是 「1/1/1970 0:00:00 GMT + 0」,現在事情的時區。所以,這個時代是不同的,也很可能是時區。這使得GAS和電子表格之間的運行日期一塌糊塗。 要測試GAS紀元,請執行range.setValue(new Date(0)); 「

相關問題