【发布时间】:2021-12-16 23:53:35
【问题描述】:
我的时区模式格式如下“2021-10-29T18:01:23+07:00”, 所以我想得到与上面相同时区的当前时间,有人可以帮我解决这个问题吗,
我试过这段代码,但它不起作用
new Date().toGMTString()
非常感谢。
【问题讨论】:
标签: javascript android reactjs react-native timezone
我的时区模式格式如下“2021-10-29T18:01:23+07:00”, 所以我想得到与上面相同时区的当前时间,有人可以帮我解决这个问题吗,
我试过这段代码,但它不起作用
new Date().toGMTString()
非常感谢。
【问题讨论】:
标签: javascript android reactjs react-native timezone
一般来说,我建议您研究 MomentsJS。在使用 Date 时非常有帮助。它带有格式功能以及您可以安全地添加或减少日期的功能。
MomentJS 文档:https://momentjs.com/
【讨论】:
使用原生 Date 方法,您可以获得的最接近的方法是使用:
new Date().toISOString() // '2021-11-02T13:12:26.229Z'
但这会返回 GTM 时间,要以您指定的模式获取本地时间,您必须自己格式化:
function formatDateString(date) {
//Function to format numbers (prepending leading zero and adding sign)
const f = (n, sign = false) => (sign ? (n < 0 ? "-" : "+") : "") + n.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false });
//Compute Date, Time and Zone
const d = `${date.getFullYear()}-${f(date.getMonth() + 1)}-${f(date.getDate())}`;
const t = `${f(date.getHours())}:${f(date.getMinutes())}:${f(date.getSeconds())}`;
const z = `${f(-date.getTimezoneOffset() / 60, true)}:00`;
//Return it all together
return `${d}T${t}${z}`;
}
var mydate = new Date();
console.log(mydate.toISOString());
console.log(formatDateString(mydate));
或者您可以使用 3rd 方库,例如 MomentJS。
【讨论】: