SimpleDateFormatter.parse 输出格式差异
尝试使用 SimpleDateFormat 将 UNIX 时间戳转换为特定日期格式时,用户可能会遇到以下问题:格式化和解析的输出。
造成这种差异的一个原因是时区可能不匹配。确保 SimpleDateFormat 的时区与预期输出匹配。此外,请验证纪元时间戳是否按照 Date 构造函数的要求以毫秒为单位表示。
建议的解决方案:
为了避免潜在的格式问题并确保数据库兼容性,它建议将日期对象直接传递给 MySQL,而不是字符串。利用 java.time 类(例如 LocalDateTime)来表示日期和时间。
这是更新的代码片段:
<code class="java">String ep = "a1527069600"; long epoch = Long.parseLong(ep.substring(1)); Instant instant = Instant.ofEpochSecond(epoch); LocalDateTime ldt = instant.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime(); PreparedStatement ps = myDatabaseConnection.prepareStatement( "insert into my_table (my_date_time) values (?)"); ps.setObject(1, ldt);</code>
此方法可确保日期根据指定时间进行格式化区域并作为对象存储在数据库中,消除了格式错误的可能性。
以上是以下是一些标题选项,重点关注核心问题和解决方案: 选项 1(直接且以问题为中心): * 为什么 SimpleDateFormat.parse 在转换 UNIX 时间时会产生不一致的输出的详细内容。更多信息请关注PHP中文网其他相关文章!