java中d怎样转换D,如何将ZonedDateTime转换为date?
TL;博士
java.util.Date utilDate = java.util.Date.from ( myZonedDateTime.toInstant() ) ; // Caution: possible data loss.
其他答案正确
ssoltanid的答案正确地解决了您的具体问题,如何将一个新的java.time对象( ZonedDateTime )转换为老派的java.util.Date对象。 从ZonedDateTime中提取Instant并传递给java.util.Date.from() 。
数据丢失
请注意,您将遭受数据丢失 ,因为Instant追踪自时代以来的纳秒 ,而java.util.Date追踪时代以来的毫秒数 。
你的问题和意见提出了其他问题。
以UTC保持服务器
您的服务器应该将其主机操作系统设置为UTC,作为一般的最佳做法。 JVM在这个主机操作系统设置中select默认时区,在我知道的Java实现中。
指定时区
但是,您绝不应该依赖JVM当前的默认时区。 启动JVM时传递的标志可以设置另一个时区,而不是拾取主机设置。 更糟糕的是:任何时候任何应用程序的任何线程中的任何代码都可以调用java.util.TimeZone::setDefault在运行时更改默认值!
卡桑德拉Timestamptypes
任何体面的数据库和驱动程序都应该自动处理将通过的date时间调整为UTC以进行存储。 我不使用卡桑德拉,但它似乎对date时间有一些基本的支持。 该文档说,其Timestamptypes是从同一纪元(1970年的第一个时刻UTC)的毫秒数。
ISO 8601
此外,Cassandra接受ISO 8601标准格式的stringinput。 幸运的是,java.time使用ISO 8601格式作为parsing/生成string的默认值。 Instant类的toString实现将很好地完成。
精确度:毫秒与Nanosecord
但是首先我们需要将ZonedDateTime的纳秒精度降低到几毫秒。 一种方法是使用毫秒创build一个新的即时。 幸运的是,java.time有一些方便的方法来转换成毫秒。
示例代码
这里是Java 8 Update 60中的一些示例代码。
ZonedDateTime zdt = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ); … Instant instant = zdt.toInstant(); Instant instantTruncatedToMilliseconds = Instant.ofEpochMilli( instant.toEpochMilli() ); String fodderForCassandra = instantTruncatedToMilliseconds.toString(); // Example: 2015-08-18T06:36:40.321Z
或者根据这个Cassandra Java驱动程序doc ,你可以传递一个java.util.Date实例(不要和java.sqlDate混淆)。 所以你可以在上面的代码中创build一个来自instantTruncatedToMilliseconds 。
java.util.Date dateForCassandra = java.util.Date.from( instantTruncatedToMilliseconds );
如果经常这样做,你可以做一个单线。
java.util.Date dateForCassandra = java.util.Date.from( zdt.toInstant() );
但是创build一个小实用方法会更好。
static public java.util.Date toJavaUtilDateFromZonedDateTime ( ZonedDateTime zdt ) { Instant instant = zdt.toInstant(); // Data-loss, going from nanosecond resolution to milliseconds. java.util.Date utilDate = java.util.Date.from( instant ) ; return utilDate; }
注意所有这些代码的差异,而不是在问题中。 问题的代码试图将ZonedDateTime实例的时区调整为UTC。 但是这不是必要的。 概念:
ZonedDateTime = Instant + ZoneId
我们只是提取即时部分,它已经在UTC(基本上是UTC,阅读类文档的精确细节)。
java中d怎样转换D,如何将ZonedDateTime转换为date?相关推荐
- java中把map转换成list
private String key; private String value; //把map转换成list的公共方法 public static List map ...
- java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...
- java中文转简拼_如何将java中的汉字转换成简拼
有不少小伙伴们在使用java的时候会在想如何将java中的汉字转换成简拼呢?其实将java中的汉字转换成简拼是一件很简单的事情,那么下面我们就和爱站小编一起去学习学习吧. public static ...
- java中带符号十六进制转换成十进制详解
java中带符号十六进制转换成十进制详解 代码如下 代码如下 必须拿ffff进行测试,否则测不出异同 public void test1(){String strHex="ffff" ...
- java整数能强转转字符,Java中数据类型默认转换和强制类型转换
默认转换: a:由低到高一次为:(byte short char )---int ---long ---float --- double b:注意:byte short char ...
- java中的缩小_在Java中,加宽转换(隐式)和缩小转换(显式)之间有什么区别?...
Java中的类型转换用于将一种类型的对象或变量转换为另一种类型.当我们将一种数据类型转换或分配给另一种数据类型时,它们可能不兼容.如果合适的话,它将顺利进行,否则会丢失数据. Java中的类型转换类型 ...
- Java中的XSL转换:一种简单的方法
XSL转换 (XSLT)是将一个XML文档转换为另一个XML文档的强大机制. 但是,在Java中,XML操作相当冗长和复杂. 即使是简单的XSL转换,也必须编写几十行代码-如果需要适当的异常处理和日志 ...
- [转载] Java中日期格式转换
参考链接: Java中的类型转换和示例 Code: /** * 字符串转换为java.util.Date<br> * 支持格式为 yyyy.MM.dd G 'at' hh: ...
- java 编码解码_深入解析Java中的编码转换以及编码和解码操作
一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...
最新文章
- PyTorch深度学习入门
- gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号
- PM——视屏操作软件
- 【Paper】Origin绘制误差棒图(标准差围绕均值)
- 【性能优化】优化笔记之一:图像RGB与YUV转换优化
- lamp中php怎么连接mysql_LAMP分离安装环境下,php无法连接mysql的问题
- 再次理解javascript中的事件
- Java程序员必会!没有返回值的构造函数是怎么完成赋值的?
- 关于Matlab取整函数round的用法
- java this逃逸_java this引用逃逸详解
- XML shema 约束入门 (2 ) 约束文件加入与说明
- 【软考】【系统架构设计师】最小生成树知识点
- 谨慎处理单片机中断,中断等价于比主程序优先级更高的线程
- 数据结构——栈的应用
- Android关于Firebase集成及示例及用法(开发反编译)
- 实战项目(2)STM32cubeMX配置蓝牙模块
- 飞机机电管理计算机故障措施,一种基于故障树的飞机机电系统健康管理装置及管理方法与流程...
- 富田刹车马达特点和用途
- IDEA双击图标打不开,无反应?
- 统计分析基础-描述数据
热门文章
- RabbitMQ服务的安装与使用
- Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
- python怎么保存为nii文件_Ubuntu+python将nii图像保存成png格式
- linux java heap space_Linux tomcat9 java.lang.OutOfMemoryError: Java heap space 解决方法
- 赵娜计算机,新学期 新起点 新征程——计算机学院2016级召开系列年级工作会议...
- c语言结构体tdl,计算机等级二级C笔试考前练习习题(21)
- matlab2015统计工具箱,matlab统计工具箱函数汇集
- linux java.policy_Linux部署Java环境
- nested exception is java.lang.UnsatisfiedLinkError: no jacob-1.19-x64 in java.library.path
- Idea springboot应用,启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept