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);'你有这样做吗? –
我不明白。你没有得到什么? –