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?相关推荐

  1. java中把map转换成list

    private String key;     private String value;          //把map转换成list的公共方法     public static List map ...

  2. java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则

    Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...

  3. java中文转简拼_如何将java中的汉字转换成简拼

    有不少小伙伴们在使用java的时候会在想如何将java中的汉字转换成简拼呢?其实将java中的汉字转换成简拼是一件很简单的事情,那么下面我们就和爱站小编一起去学习学习吧. public static ...

  4. java中带符号十六进制转换成十进制详解

    java中带符号十六进制转换成十进制详解 代码如下 代码如下 必须拿ffff进行测试,否则测不出异同 public void test1(){String strHex="ffff" ...

  5. java整数能强转转字符,Java中数据类型默认转换和强制类型转换

    默认转换: a:由低到高一次为:(byte   short    char  )---int ---long ---float --- double b:注意:byte   short    char ...

  6. java中的缩小_在Java中,加宽转换(隐式)和缩小转换(显式)之间有什么区别?...

    Java中的类型转换用于将一种类型的对象或变量转换为另一种类型.当我们将一种数据类型转换或分配给另一种数据类型时,它们可能不兼容.如果合适的话,它将顺利进行,否则会丢失数据. Java中的类型转换类型 ...

  7. Java中的XSL转换:一种简单的方法

    XSL转换 (XSLT)是将一个XML文档转换为另一个XML文档的强大机制. 但是,在Java中,XML操作相当冗长和复杂. 即使是简单的XSL转换,也必须编写几十行代码-如果需要适当的异常处理和日志 ...

  8. [转载] Java中日期格式转换

    参考链接: Java中的类型转换和示例 Code: /**     * 字符串转换为java.util.Date<br>     * 支持格式为 yyyy.MM.dd G 'at' hh: ...

  9. java 编码解码_深入解析Java中的编码转换以及编码和解码操作

    一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...

最新文章

  1. PyTorch深度学习入门
  2. gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号
  3. PM——视屏操作软件
  4. 【Paper】Origin绘制误差棒图(标准差围绕均值)
  5. 【性能优化】优化笔记之一:图像RGB与YUV转换优化
  6. lamp中php怎么连接mysql_LAMP分离安装环境下,php无法连接mysql的问题
  7. 再次理解javascript中的事件
  8. Java程序员必会!没有返回值的构造函数是怎么完成赋值的?
  9. 关于Matlab取整函数round的用法
  10. java this逃逸_java this引用逃逸详解
  11. XML shema 约束入门 (2 ) 约束文件加入与说明
  12. 【软考】【系统架构设计师】最小生成树知识点
  13. 谨慎处理单片机中断,中断等价于比主程序优先级更高的线程
  14. 数据结构——栈的应用
  15. Android关于Firebase集成及示例及用法(开发反编译)
  16. 实战项目(2)STM32cubeMX配置蓝牙模块
  17. 飞机机电管理计算机故障措施,一种基于故障树的飞机机电系统健康管理装置及管理方法与流程...
  18. 富田刹车马达特点和用途
  19. IDEA双击图标打不开,无反应?
  20. 统计分析基础-描述数据

热门文章

  1. RabbitMQ服务的安装与使用
  2. Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
  3. python怎么保存为nii文件_Ubuntu+python将nii图像保存成png格式
  4. linux java heap space_Linux tomcat9 java.lang.OutOfMemoryError: Java heap space 解决方法
  5. 赵娜计算机,新学期 新起点 新征程——计算机学院2016级召开系列年级工作会议...
  6. c语言结构体tdl,计算机等级二级C笔试考前练习习题(21)
  7. matlab2015统计工具箱,matlab统计工具箱函数汇集
  8. linux java.policy_Linux部署Java环境
  9. nested exception is java.lang.UnsatisfiedLinkError: no jacob-1.19-x64 in java.library.path
  10. Idea springboot应用,启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept