我有一个Google函数,它解析来自UTC日期的月份,例如myDate = Wed 13 2019 02:05:00 GMT+0000 (UTC)这个日期实际上是旧金山时间(PDT或PST)中的Tues 12。
但是,在我的Google功能中,当我尝试用myDate.getDate()从这个日期得到一个月的日期时,我得到的是13而不是12。
我相信它返回13的原因是因为运行云功能的机器的时区是基于UTC时间的。当我在我的本地机器上运行这个函数时,我得到12作为正确的日期,因为我的本地机器是在PST时间。
如何使Google函数在PDT或PST时区中操作,以便getDate()函数在PDT或PST时区中给出正确的日期?
发布于 2019-11-13 17:57:15
作为道格说,不可能在云函数服务器实例上配置时区。
不过,你不需要图书馆。使用NodeJS 8或10的Google函数可以使用JavaScript国际化API获取特定时区的日期:
let myDate = new Date("2019-11-13T02:05:00Z"); // the value you gave in the question
let s = myDate.toLocaleDateString('en-US', { timeZone: 'America/Los_Angeles' })
//=> "11/12/2019"如果您只想要一个月中的数字日,可以从那里的字符串中提取它。
+(s.split('/')[1]) //=> 12发布于 2020-12-26 18:29:19
发布于 2019-11-13 15:45:37
无法在云函数服务器实例上配置时区。
如果您的代码完全不依赖于本地时区配置,情况会更好。如果您需要您的日期逻辑来格式化特定时区的日期,则应该使用一个知道如何进行此操作的库,例如“瞬间”。它具有全面的数据操作实用程序,并且对时区有一个加注。https://momentjs.com/
https://stackoverflow.com/questions/58832296
复制相似问题