java - JDBC:在 UTC 中插入时间戳
问题描述
我的部分表定义(MySQL)如下所示:
+-----------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+----------------+
| ... | ... | .. | ... | ... | ... |
| timestamp | datetime | YES | | NULL | |
| ... | ... | .. | ... | ... | ... |
+-----------+----------+------+-----+---------+----------------+
我想使用 JDBC 更新时间戳字段。假设时间戳为UTC。
在我的 Java 代码中,我正在获取时间戳字段,如下所示:
Timestamp datetime = new Timestamp(new Date().getTime());
java.util.Date的文档指出:
尽管 Date 类旨在反映协调世界时 (UTC),但它可能并不完全如此,这取决于 Java 虚拟机的主机环境。
不幸的是,在我的 Windows 10 环境(java 版本“1.8.0_231”)中,Date 对象反映了我的本地时区。因此,添加到数据库的时间戳是本地时区,而不是 UTC。
Q) 如何获取 UTC 时间戳,以便将正确的值添加到数据库中?
解决方案
推荐阅读
- javascript - 赛普拉斯自动重定向到新 URL
- javascript - 如何使用 next.js 加载 CSS 模块
- ios - Safari iOS 上的 Google 字体 (Roboto)
- scala - ZIO 在并行操作上与 Cats 互操作
- angular - 如何在同一个Angular App中切换2个不同模块时更改标题
- python - 使用 API 在 Redash 上创建新查询
- java - 如何使用 java 发送断开连接请求?
- netsuite - 在 netsuite 中并排添加两个不同的子列表
- python - 仅包含 -1 和 1 的随机列表
- python-3.x - 如何从具有数据时间列的数据框中获取某个日期的总计数