一、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. }
String dateStr = "2010/05/04 12:34:23";Date date = new Date();//注意format的格式要与日期String的格式相匹配DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");try {date = sdf.parse(dateStr);System.out.println(date.toString());} catch (Exception e) {e.printStackTrace();}

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. }
String dateStr = "";Date date = new Date();//format的格式可以任意DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");try {dateStr = sdf.format(date);System.out.println(dateStr);dateStr = sdf2.format(date);System.out.println(dateStr);} catch (Exception e) {e.printStackTrace();}

二、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. }
Timestamp ts = new Timestamp(System.currentTimeMillis());String tsStr = "2011-05-09 11:49:45";try {ts = Timestamp.valueOf(tsStr);System.out.println(ts);} catch (Exception e) {e.printStackTrace();}

注: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. }
Timestamp ts = new Timestamp(System.currentTimeMillis());String tsStr = "";DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");try {//方法一tsStr = sdf.format(ts);System.out.println(tsStr);//方法二tsStr = ts.toString();System.out.println(tsStr);} catch (Exception e) {e.printStackTrace();}

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

三、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. }
Timestamp ts = new Timestamp(System.currentTimeMillis());Date date = new Date();try {date = ts;System.out.println(date);} catch (Exception e) {e.printStackTrace();}

很简单,但是此刻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()等等

转载于:https://www.cnblogs.com/toSeeMyDream/p/7078093.html

Java:String和Date、Timestamp之间的转换相关推荐

  1. java基本数据类型自动转包装类,Java String和基本数据类型之间的转换(包装类)

    一.String 转化成 基本数据类型 利用基本数据类型对应的包装类的parseXxx() 或 valueOf() 方法 注意 : String 对象的字面量 是 数字类型.否则会报异常(Number ...

  2. Java实现Object和Map之间的转换

    Java实现Object和Map之间的转换 public class Obj2MapUtils {/*** 将Object类型的数据转化成Map<String,Object>* @para ...

  3. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  4. String和Date、Timestamp之间的转换

    2019独角兽企业重金招聘Python工程师标准>>> 一.String与Date(java.util.Date)互转        1.1 String -> Date St ...

  5. java calendar 转换_[java]转:String Date Calendar之间的转换

    1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...

  6. Java String和Date的转换 Date类型操作

    String->Date String dateString = "2012-12-06 "; try {SimpleDateFormat sdf = new SimpleD ...

  7. String Date Calendar之间的转换

    http://strongboy789.iteye.com/blog/1551959 1.Calendar 转化 String Calendar calendat = Calendar.getInst ...

  8. JAXB处理java对象与xml格式之间的转换

    JAXB(Java Architecture for XML Binding)是J2SE和J2EE平台的一部分,让开发者能够快速完成Java类和XML的互相映射.一些具体的介绍和使用可以到此细看:JA ...

  9. java中日期与字符串之间的转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...

  10. java中数组和字符串之间的转换

    java中对于数组和字符串之间的转换确实是一小的迷点. 字符串转为数组可以使用: char[] toCharArray() 将此字符串转换为一个新的字符数组. 数组转字符串: 可以直接使用new的方式 ...

最新文章

  1. linux安装ffmpeg
  2. MySQL INNER JOIN:内连接查询
  3. z.lua 1.7.0 发布,快速回到历史路径,支持 ranger / fz
  4. 安装linux系统选择重新分区会怎么样,弱弱的问一下 双系统安装中linux如何分区?分区太多会不会不好?...
  5. java spring源码_spring源码分析-spring中的bean
  6. u盘锁电脑_如何给u盘设置密码 给u盘设置密码方法【步骤详解】
  7. 落后产能的实现路径 | 凌云时刻
  8. linux DHCP安装和测试
  9. 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
  10. 人工智能中的图像识别技术
  11. 点播和播放器下载需要的参数的区别(VideoId、AccessKeyId、AccessKeySecret、playKey、playauth)...
  12. css 大于号 标签_css选择器 ~ (波浪号)、+(加号)、(大于号)的用法解析和举例...
  13. 木马可以损坏计算机硬件么,台式电脑总是自动重启怎么处理
  14. SAP 生产订单创建修改日期
  15. 华为机试真题 C++ 实现【竖直四子棋】
  16. wifi快速漫游实例分析
  17. echo “c“ > /proc/sysrq-trigger 让linux系统崩溃之后的恢复办法
  18. 数字IC所用软件及IP分类
  19. 怎么访问到别人的电脑?
  20. 召集令-3000人大集合

热门文章

  1. Flex tree加三状态的Checkbox
  2. SQL Server BI Step by Step SSIS 5 --- 通过Email发送查询结果
  3. 使用ubuntu自带的文件管理器通过ssh管理远程文件
  4. WPF-14:绑定中数据模型必须为public问题
  5. 转载,对于已用encryption加密的存储过程,的解密方法
  6. 利用wxWindows开发界面程序
  7. 分区工具parted的详解及常用分区使用方法
  8. 面试4轮字节Java研发岗,最终拿下Offer(原题复盘)
  9. 推荐 :深度学习初学者不可不知的25个术语和概念(上)
  10. 高可用架构系列之京东亿级商品详情页架构演进技术解密