Java:String和Date、Timestamp之间的转换
一、String与Date(java.util.Date)互转
1.1 String -> Date
- 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();
- }
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
- 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 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()方法
- 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();
- }
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
- 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();
- }
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
- Timestamp ts = new Timestamp(System.currentTimeMillis());
- Date date = new Date();
- try {
- date = ts;
- System.out.println(date);
- } catch (Exception e) {
- e.printStackTrace();
- }
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之间的转换相关推荐
- java基本数据类型自动转包装类,Java String和基本数据类型之间的转换(包装类)
一.String 转化成 基本数据类型 利用基本数据类型对应的包装类的parseXxx() 或 valueOf() 方法 注意 : String 对象的字面量 是 数字类型.否则会报异常(Number ...
- Java实现Object和Map之间的转换
Java实现Object和Map之间的转换 public class Obj2MapUtils {/*** 将Object类型的数据转化成Map<String,Object>* @para ...
- java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...
在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...
- String和Date、Timestamp之间的转换
2019独角兽企业重金招聘Python工程师标准>>> 一.String与Date(java.util.Date)互转 1.1 String -> Date St ...
- java calendar 转换_[java]转:String Date Calendar之间的转换
1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...
- Java String和Date的转换 Date类型操作
String->Date String dateString = "2012-12-06 "; try {SimpleDateFormat sdf = new SimpleD ...
- String Date Calendar之间的转换
http://strongboy789.iteye.com/blog/1551959 1.Calendar 转化 String Calendar calendat = Calendar.getInst ...
- JAXB处理java对象与xml格式之间的转换
JAXB(Java Architecture for XML Binding)是J2SE和J2EE平台的一部分,让开发者能够快速完成Java类和XML的互相映射.一些具体的介绍和使用可以到此细看:JA ...
- java中日期与字符串之间的转换
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...
- java中数组和字符串之间的转换
java中对于数组和字符串之间的转换确实是一小的迷点. 字符串转为数组可以使用: char[] toCharArray() 将此字符串转换为一个新的字符数组. 数组转字符串: 可以直接使用new的方式 ...
最新文章
- linux安装ffmpeg
- MySQL INNER JOIN:内连接查询
- z.lua 1.7.0 发布,快速回到历史路径,支持 ranger / fz
- 安装linux系统选择重新分区会怎么样,弱弱的问一下 双系统安装中linux如何分区?分区太多会不会不好?...
- java spring源码_spring源码分析-spring中的bean
- u盘锁电脑_如何给u盘设置密码 给u盘设置密码方法【步骤详解】
- 落后产能的实现路径 | 凌云时刻
- linux DHCP安装和测试
- 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- 人工智能中的图像识别技术
- 点播和播放器下载需要的参数的区别(VideoId、AccessKeyId、AccessKeySecret、playKey、playauth)...
- css 大于号 标签_css选择器 ~ (波浪号)、+(加号)、(大于号)的用法解析和举例...
- 木马可以损坏计算机硬件么,台式电脑总是自动重启怎么处理
- SAP 生产订单创建修改日期
- 华为机试真题 C++ 实现【竖直四子棋】
- wifi快速漫游实例分析
- echo “c“ > /proc/sysrq-trigger 让linux系统崩溃之后的恢复办法
- 数字IC所用软件及IP分类
- 怎么访问到别人的电脑?
- 召集令-3000人大集合