- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用new Date(<date-string>)
然后.getTime()
将日期字符串传递为 1970 年以来的毫秒数。
问题是日期字符串不包含时区。他们是英国人,所以时区将是 GMT 或 GMT+1,具体取决于日期...
当我在前端 (Chrome) 或后端 (Node.js) 中使用此技术时。所采用的时区是英国时区(GMT 或 GMT+1,具体取决于日期)。我假设这是从操作系统中获取的。
但是,当使用 Node.js 服务器时,我被告知配置为 UTC...时区始终为 GMT,导致英国夏令时出现错误。
有什么办法可以告诉Date
在不更改服务器配置的情况下从操作系统获取时区?
示例:
var aDate = new Date('2016-06-23 10:15:0');
var timestamp = aDate.getTime();
以防万一我的解释不清楚:
// Executed on 28-06-2016
// In the browser (in London)
new Date().getTimezoneOffset(); // -60
new Date('28-06-2016 11:11:11').getTimezoneOffset(); // -60
new Date('28-01-2016 11:11:11').getTimezoneOffset(); // 0
// In the Node.js server I am forced to use, which is configured to use UTC
new Date().getTimezoneOffset(); // 0
new Date('28-06-2016 11:11:11').getTimezoneOffset(); // 0
new Date('28-01-2016 11:11:11').getTimezoneOffset(); // 0
// Ideally, I would like to have the output I get in the browser when I run the code in the UTC Node.js server
最佳答案
我建议使用Moment Timezone为此,因为如果没有库,实现起来会变得不必要的复杂。要获取给定时区中给定日期的 UTC(以毫秒为单位),您可以执行以下操作:
const moment = require('moment-timezone');
function londonTimeToUTC(dateString) {
return moment.tz(dateString, 'DD-MM-YYYY HH:mm:ss', 'Europe/London').valueOf();
}
console.log(londonTimeToUTC('28-06-2016 11:11:11')); // 1467108671000
console.log(londonTimeToUTC('28-01-2016 11:11:11')); // 1453979471000
传递给 moment.tz()
的第二个参数是 format string ,如果日期字符串不在 ISO format 中,则这是必需的。第三个参数是任何有效的 timezone identifier .
关于javascript - 如何告诉 JavaScript Date 从哪里获取 TimezoneOffset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38077862/
我正在尝试将用户的本地时间存储到我的数据库中。我不能使用 PHP 函数 now(),因为它会返回服务器的时间。 我通过使用 JavaScript 获得了 TimezoneOffset: d = new
friend 们,我正在根据下面的计算得到一个日期 NSCalendar *gregorian = [[NSCalendar alloc] initWithCalenda
什么是初始化 Swift 的干净方法 TimeZone来自 timeZoneOffset 字符串的对象,格式为:“+HH:MM”。 我正在寻找以下形式的内容: extension TimeZone {
我正在使用new Date()然后.getTime()将日期字符串传递为 1970 年以来的毫秒数。 问题是日期字符串不包含时区。他们是英国人,所以时区将是 GMT 或 GMT+1,具体取决于日期..
我有一个本地日期/时间戳,并且有一个以字符串格式存储的时区偏移量(下面的myStringTimeStamp变量名称)。我需要将本地日期/时间戳转换为 UTC 时间。 时间戳的格式为:yyyy-MM-d
我很难找到有关此关键问题的任何信息,因此我决定发布此信息以帮助遇到相同问题的用户。 Chrome 嵌入式 Flash Player (Pepper) 有一个关于日期 timezoneOffset 的错
我使用的是 Sql Sever 2008 R2。有没有办法从 timezoneoffSet 中识别时区标准名称或夏令时名称。 例如我有“2013-09-26 03:00:00.0000000 -04:
我是一名优秀的程序员,十分优秀!