为了进行转换,我有下面的代码,它将给定的zoneId转换为UTC格式。
public ZonedDateTime convertDateBetweenTimeZones(LocalDateTime sourceDateTime,String sourceZone,String targetZone){
return sourceDateTime.atZone( ZoneId.of(sourceZone)).withZoneSameInstant( ZoneId.of(targetZone));
}
我按如下方式调用上述方法,
ZonedDateTime zonedDateTime=convertDateBetweenTimeZones(LocalDateTime.now(),"Asia/Calcutta","UTC");
一旦我可以获得一个zonedDateTime对象,我想我可以将数据库传递给它并相应地查询它。
JavaUser
你每件事都做得很好,但有三件事。
服务器的时区设置应该与您的编码无关。服务器设置可以随时更改,因此不能依赖于此。
始终将可选的时区对象传递给所有相关的java.time方法,以指定您期望/希望的任何时区。
您可以明智地使用正确的IANA“TZ”时区名称,其格式为大陆/地区
例如美洲/蒙特利尔
。不要使用3-4个字母的缩写,如EST
或IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。
对于数据库交换,您可能需要通过toinstant
方法从ZonedDateTime
提取instant
。大多数严肃的数据库都以UTC形式存储日期-时间。instant
类以UTC表示时间线上的一个时刻,分辨率为纳秒。
遵循JDBC4.2或更高版本的JDBC驱动程序可能通过ResultSet::GetObject
和PrepatedStatement::SetObject
直接使用Instant
。如果没有,则返回到简单地转换为java.sql类型,如java.sql.timestamp
。
仔细研究数据库的日期-时间处理行为;不同的数据库在此(!)上差异很大。SQL规范很少提到日期-时间处理过去的主题,模糊地无视几天类型。有些像Postgres有很好的日期时间支持,而其他的支持很差,所有的行为都不同。
至于从web浏览器中确定时区,这并不简单。搜索堆栈溢出的更多信息与许多问题和答案已经张贴。
最终,唯一确定的方法是询问用户。在从用户收集数据时包括时区字段。
我想把这个2021年1月20日20:10:14转换成yyyy-MM-dd'T'HH:MM:ss格式。Android系统中的SSS'Z'。目前我正在使用函数,但当我转换为本地格式时,我没有得到原始时间
问题内容: 我需要一种简便的方法,可以在不使用任何库的情况下将日期时间戳转换为UTC(从服务器所在的任何时区)。 问题答案: 尝试getTimezone和setTimezone,请参见示例 (但这确实使用了一个类) 更新: 没有任何类,您可以尝试这样的事情: 注意:您可能还需要将时区设置回原始
我有一个方法可以生成一个随机的日期和时间。 打印输出类似于 我见过几个这样的问题和页面,但他们没有给我一个线索。
我有一个post请求,可以很好地与postman配合使用,我尝试将其转换为cUrl请求,以便通过提示命令或导入postman来使用它。 如果“KEY”字段为空,它将不起作用。 以下是我尝试的:
问题内容: 我有以下CURL请求,谁能请我确认subesquest HTTP请求是什么? 会是这样吗? 任何人都可以帮助我将上述curl请求完全转换为httpreq。 提前致谢。 苏维 问题答案: 有很多方法可以实现这一目标。在我看来,以下一项是最简单的,同意它不是很灵活,但是可以工作。