【发布时间】:2016-04-14 17:37:02
【问题描述】:
我有一个 Android 应用,我想在给定的日期和时间(全部为本地)显示通知。但是,如果我使用这样的 UTC 格式,我通过 json 从服务器获取:
2016-04-14T11:30:00Z
使用此功能,消息在全球同时显示:
var mTime = new Date( element.dateNtime );
我想要的是在当地时间上午 11:30 显示消息。就像英国的上午 11:30 一样,所有用户都会收到通知,但美国的用户会在 5 小时后收到通知,即当地时间 11:30(美国东部标准时间或其他时间)。
更新
我想我已经找到了解决方案,但从下面的答案看来,这个问题要么不太清楚,要么没有被理解。这是场景:
一个。用户在其手机上打开了我的 Cordova 应用程序 湾。应用程序在启动时从服务器读取字符串日期和消息,格式为“2016-04-14T11:30:00Z”。因此,使用 new Date() 函数获取当前日期是没有问题的。 C。基于此,应用程序使用 Cordova 的通知插件为给定的日期和时间设置通知。 d。到时候会弹出通知
解决方案是对日期使用 NON-ISO 格式,即“'Wed, 09 Aug 1995 00:00:00'” 以及 Date.parse() 函数。使用上面的示例代码将变为:
var mTime = Date.parse( element.dateNtime );
如果以这种格式提供日期('Wed, 09 Aug 1995 00:00:00'),变量 mTime 将包含完全相同的值。但是,如果日期时间以 ISO 格式 ( 2016-04-14T11:30:00Z ) 提供,则 mTime 将包含转换为用户区域设置的时间。
【问题讨论】:
标签: javascript android datetime locale android-notifications