http://yunnick.iteye.com/blog/1074495

一、String与Date(java.util.Date)互转

1.1 String -> Date

  1. String dateStr = "2010/05/04 12:34:23";
  2. Date date = new Date();
  3. //注意format的格式要与日期String的格式相匹配
  4. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  5. try {
  6. date = sdf.parse(dateStr);
  7. System.out.println(date.toString());
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  1. String dateStr = "2010/05/04 12:34:23";
  2. Date date = new Date();
  3. //注意format的格式要与日期String的格式相匹配
  4. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  5. try {
  6. date = sdf.parse(dateStr);
  7. System.out.println(date.toString());
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }

1.2 Date -> String

日期向字符串转换,可以设置任意的转换格式format

  1. String dateStr = "";
  2. Date date = new Date();
  3. //format的格式可以任意
  4. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  5. DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
  6. try {
  7. dateStr = sdf.format(date);
  8. System.out.println(dateStr);
  9. dateStr = sdf2.format(date);
  10. System.out.println(dateStr);
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. }
  1. String dateStr = "";
  2. Date date = new Date();
  3. //format的格式可以任意
  4. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  5. DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
  6. try {
  7. dateStr = sdf.format(date);
  8. System.out.println(dateStr);
  9. dateStr = sdf2.format(date);
  10. System.out.println(dateStr);
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. }

二、String与Timestamp互转

2.1 String ->Timestamp

使用Timestamp的valueOf()方法

  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. String tsStr = "2011-05-09 11:49:45";
  3. try {
  4. ts = Timestamp.valueOf(tsStr);
  5. System.out.println(ts);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }
  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. String tsStr = "2011-05-09 11:49:45";
  3. try {
  4. ts = Timestamp.valueOf(tsStr);
  5. System.out.println(ts);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }

注:String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!

如果String为其他格式,可考虑重新解析下字符串,再重组~~

2.2 Timestamp -> String

使用Timestamp的toString()方法或者借用DateFormat

  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. String tsStr = "";
  3. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  4. try {
  5. //方法一
  6. tsStr = sdf.format(ts);
  7. System.out.println(tsStr);
  8. //方法二
  9. tsStr = ts.toString();
  10. System.out.println(tsStr);
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. }
  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. String tsStr = "";
  3. DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  4. try {
  5. //方法一
  6. tsStr = sdf.format(ts);
  7. System.out.println(tsStr);
  8. //方法二
  9. tsStr = ts.toString();
  10. System.out.println(tsStr);
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. }

很容易能够看出来,方法一的优势在于可以灵活的设置字符串的形式。

三、Date( java.util.Date )和Timestamp互转

声明:查API可知,Date和Timesta是父子类关系

3.1 Timestamp -> Date

  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. Date date = new Date();
  3. try {
  4. date = ts;
  5. System.out.println(date);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }
  1. Timestamp ts = new Timestamp(System.currentTimeMillis());
  2. Date date = new Date();
  3. try {
  4. date = ts;
  5. System.out.println(date);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }

很简单,但是此刻date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中。

3.2 Date -> Timestamp

父类不能直接向子类转化,可借助中间的String~~~~

java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));

//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);
//这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
自己补的话
这样的话:
        往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。
       从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个java.util.Date对象,这样就可以对这个Date对象操作了。不如说 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等

String与Date(java.util.Date)互转(转)的更多相关文章

  1. 【spring boot】spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [java.util.Date]

    spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [jav ...

  2. Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2020-02-06'; nested exception is java.lang.IllegalArgumentException]解决

    今天做springbook项目前端输入日期传到数据库保存报了一下错误 Whitelabel Error Page This application has no explicit mapping fo ...

  3. java.sql.Date/ java.util.Date/ java.util.Calendar 用法与区别

    在 JDK API  这样解释," 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.不过,这些函数的 ...

  4. JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换

    java.util.Date与的String互转 java.util.Date---->String /** * 将java.util.Date对象转化为String字符串 * @param d ...

  5. Java 异常 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'

    查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss 服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日 ...

  6. java.util.Date和java.sql.Date的区别和相互转化

    java.util.Date是在除了SQL语句的情况下面使用的.java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它 们都有getTime方法返回毫秒数,自然就可以直接构建. ...

  7. java.util.Date和java.sql.Date的区别和相互转化(转)

    java.util.Date是在除了SQL语句的情况下面使用的.java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建.  ...

  8. java.util.Date和java.sql.Date的区别及应用

    java.util.Date 就是在除了SQL语句的情况下面使用java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建ja ...

  9. java.util.Date和java.sql.Date

    java.util.Date是在除了SQL语句的情况下面使用的. java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分 它们都有getTime方法返回毫秒数,自然就可以直接构建 ...

  10. String 转化成java.sql.Date和java.sql.Time

    String类型转换成java.sql.Date类型不能直接进行转换,首先要将String转换成java.util.Date,在转化成java.sql.Date 请点击--->   java架构 ...

随机推荐

  1. es6的一些个人总结

    es6的一些知识点 前言:es6(ECMAscript2015)标准 let.const.var的一些区别 let.const 块级作用域.全局作用域.函数作用域 var 全局作用域.函数作用域 变量 ...

  2. Oracle中的游标的原理和使用详解

    游标的简介 逐行处理查询结果,以编程的方式访问数据. 游标的类型: 1,隐式游标:在 PL/SQL 程序中执行DML SQL 语句时自动创建隐式游标,名字固定叫sql. 2,显式游标:显式游标用于处理 ...

  3. 微信小程序简述

    最近在公司实习,经理要求做一个微信小程序,晚上闲时来写一下. 微信小程序问世没多久,但毋庸置疑的是在不久的将来,它可以替代掉很多的APP.个人认为它的优势在于占用资源少,可以做到即用即走,对于一些使用 ...

  4. linux中grep命令的用法

    作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:[grep  [选项]  "模式"  [ ...

  5. Dubbo Data length too large: 11557050, max payload: 8388608 传输数据超限

    com.alibaba.dubbo.remoting.transport.AbstractCodec.checkPayload() ERROR Data length too large: 11557 ...

  6. 计算总和及平均值u

    代码如下: package ClassDemo; import java.util.Scanner; public class ScannerTest { public static void mai ...

  7. js菜鸟进阶-jQuery源码分析(1)-基本架构

    导读: 本人JS菜鸟一枚,为加强代码美观和编程思想.所以来研究下jQuery,有需要进阶JS的同学很适合阅读此文!我是边看代码(jquery2.2.1),边翻“javascript高级程序设计”写的, ...

  8. python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性

    先介绍几个类中的应用__getattr__,__setattr__,__get__,__set__,__getattribute__,. __getattr__:当在类中找不到attribute的时候 ...

  9. SetConsoleWindowInfo 函数--设置控制台窗口的大小和位置

    SetConsoleWindowInfo函数 来源:https://msdn.microsoft.com/en-us/library/windows/desktop/ms686125(v=vs.85) ...

  10. (转)Oracle中的rownum,ROWID的 用法

    场景:在书写oracle的sql语句时候,如果语句不存在主键,需要删除几条重复的记录,这个时候如果不知道oracle中的伪列,就需要把所有的重复记录先删除,再插入.这样做好麻烦,可以通过伪列来定位记录 ...