JS中时间对象与时间的格式化
JS中时间对象与时间的格式化
new Date("2024-04-08T00:00:00")// 输出 Mon Apr 08 2024 00:00:00 GMT+0800 (中国标准时间) 时间是正常的,没有多出来8个小时
new Date("2024-04-08 00:00:00")// 输出 Mon Apr 08 2024 00:00:00 GMT+0800 (中国标准时间) 时间是正常的,没有多出来8个小时
new Date() // Mon Apr 08 2024 14:39:35 GMT+0800 (中国标准时间) 时间是正常的,没有多出来8个小时
new Date("2024-04-08T00:00:00Z") // Mon Apr 08 2024 08:00:00 GMT+0800 (中国标准时间) 时间多出来8个小时
new Date("2024-04-08") // Mon Apr 08 2024 08:00:00 GMT+0800 (中国标准时间) 时间多出来8个小时
从上面的代码的输出可以看出,当使用new Date("2024-04-08T00:00:00Z")
或者是new Date("2024-04-08")
的时候,时间会多出来8个小时。
- 开发中,可以直接使用
new Date()
或者是new Date("yyyy-MM-dd HH:mm:ss")
来获取当前的时间是不会收到时区的影响的。 - 不要使用
new Date("yyyy-MM-dd")
或者是new Date("yyyy-MM-dd HH:mm:ssZ")
。这要获取到的时间会比系统时间多出来8个小时。
时间格式化可以使用moment.js
- 在使用moment.js格式化时间的过程中,没有发现时区导致的时间不正确的问题。
HTTP请求中日期参数被转换成UTC的表示时间
let params = {
satrtDate: new Date(),
endDate: new Date()
}
- 如果HTTP参数中,有用时间对象表示的参数,打开network工具栏会发现时间被转换成为了UTC时区的时间,这是因为JS对象转换成JSON字符串造成的。
- 即使是将new Date()替换成为moment(),时间也会被JS转换。
- 可以使用moment().format()函数获取日期时间,通过字符串的形式传递日期参数,JS不会转换。
- 直接使用new Date()作为参数值的话,参数会携带着时区信息,后端(SringBoot)中配置的jackson时区就会失效
posted on 2024-04-08 14:49 zhaoLei_Free 阅读(21) 评论(0) 编辑 收藏 举报