我读到new Date()
应该返回系统时区上的日期,但出于某种原因,我得到的是UTC时区而不是2021-05-28T04:00:00.000Z
。为什么会发生这种情况,我如何在当地时区获得当前时间(与Expo一起进行React Native项目(?
试试这个:
new Date().toLocaleString()
仅限日期:
new Date().toLocaleDateString()
仅限时间:
new Date().toLocaleTimeString()
我是这样绕过它的:
const d = new Date();
const month = d.getMonth() + 1; // it returns 0 for January and 11 for December
const day = d.getDate();
const year = d.getFullYear();
const hours = d.getHours() + 1; // for UTC+1 ,
const minutes = "0" + d.getMinutes();
const seconds = "0" + d.getSeconds();
const formattedTime = day + '.' + month + '.' + year + ', ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
console.log(formattedTIme);
// Output: 2.12.2021, 16:47:47
我在代码中遇到了同样的问题,例如:
const c = {d1 : new Date(1672720648000)}
console.log(c.d1.toString()) //Mon Jan 02 2023 20:37:28 GMT-0800 (Pacific Standard Time)
console.log(JSON.stringify(c))//{"dd":"2023-01-03T04:37:28.000Z"}`
c.d1 = c.d1.toString() // -> You can fix this issue by storing string in your json
console.log(JSON.stringify(c))//{"d1":"Mon Jan 02 2023 20:37:28 GMT-0800 (Pacific Standard Time)"}
所以我意识到问题出在JSON.stringify的工作方式上。
问题是NOT,日期或反应。