Date 内部实现是无时区的(UTC Unix Timestamp),只是大部分格式化转换为字符串的时候选择了本地时区。Intl.DateTimeFormat 可以实现时间格式化更好的方式。另外 JS 的时间 API 设计的非常辣鸡,不符合直觉,也没法保存时区信息,大部分时候都使用第三方库代替原生的 Date 类型。但 Date 的时间运算还是非常强大的。
Date 构造函数返回的是 Date 对象,Date 对象本身是无时区的,只有你格式化输出的时候才会按照时区进行转换,也就是说你 new Date('2023-02-13 12:37:00') 看到的实际上是 console 隐式格式化转换后的结果,如果是它原本的结果应该返回一个对象。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date
你可以去看 Date 的 API 文档,它的方法中带 UTC 的就是 UTC 格式,带 ISO 的就是 ISO 格式,带 Locale 就是本地化的格式。