inTimezone(timezone)
方法只接受有效的「長格式」JODA時區。
JODA.org
您已經得到默認日曆時區:
CalendarApp.getDefaultCalendar().getTimeZone()
返回「長格式」 JODA類型的時區,這是inTimezone()
方法需要的東西,因爲它的參數。
所以,你不需要從用戶那裏得到的信息2017-06-21T14:31
,除非其默認日曆時區是不一樣的本地時間。如果您的情況是,默認日曆時區與其計算機上的當地時間存在差異; 和你想要說明那個差別,然後你做需要得到當地時區。
如果確實需要獲取與默認日曆時區不同的時區,則用戶需要選擇時區,或者嘗試以其他方式獲取時區。
在你的問題,你說,你有時間爲:2017-06-21T14:31
本地時間2017-06-21T14:31
沒有在它的時區信息。如果它有偏移量,那麼您可以使用偏移量回到「長格式」時區。
您可以選擇一個下拉列表供用戶選擇,其值爲有效的「長格式」JODA時區。
<select>
<option value="Etc/GMT+12">GMT +12</option>
<option value="Etc/GMT+11">GMT +11</option>
</select>
如果你確實需要從客戶端代碼的用戶本地時區,請參閱下面的堆棧溢出的答案:
Stack Overflow answer - Getting the client's timezone in JavaScript
var offset = new Date().getTimezoneOffset();
console.log(offset);
然後,你將需要轉換的偏移到「長格式」時區的值。你可以通過在你的代碼中加入一個「硬編碼」的列表來做到這一點,並用代碼做一個「查找」或構建一個「Etc/GMT + ##」時區。偏移量與GMT數字相反。一個標準的負12的偏移量是+12 GMT
失調---長格式
-12:00 --- ETC/GMT + 12
首先得到補償'VAR偏移量=新的日期( ).getTimezoneOffset(); console.log(offset);'你有這樣做嗎? –
我不明白。你沒有得到什麼? –