架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 395|回复: 0

[资料] Java中Date与String的相互转换

[复制链接]
跳转到指定楼层
楼主
发表于 2019-1-11 15:19:25
zu
我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需要一个日期类型,反过来,在页面上显示的时候,需要从数据库获取出生日期,此时该类型为日期类型,然后需要将该日期类型转为字符串显示在页面上,Java的API中为我们提供了日期与字符串相互转运的类DateForamt。DateForamt是一个抽象类,所以平时使用的是它的子类SimpleDateFormat。SimpleDateFormat有4个构造函数,最经常用到是第二个。



构造函数中pattern为时间模式,具体有什么模式,API中有说明,如下



1、日期转字符串(格式化)

  1. package com.test.dateFormat;

  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;

  4. import org.junit.Test;

  5. public class Date2String {
  6.     @Test
  7.     public void test() {
  8.         Date date = new Date();
  9.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  10.         System.out.println(sdf.format(date));
  11.         sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  12.         System.out.println(sdf.format(date));
  13.         sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  14.         System.out.println(sdf.format(date));
  15.     }
  16. }
复制代码
运行结果
2016-10-24
2016-10-24 21:59:06
2016年10月24日 21:59:06


2、字符串转日期(解析)

  1. package com.test.dateFormat;

  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;

  4. import org.junit.Test;

  5. public class String2Date {
  6.     @Test
  7.     public void test() throws ParseException {
  8.         String string = "2016-10-24 21:59:06";
  9.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  10.         System.out.println(sdf.parse(string));
  11.     }
  12. }
复制代码
运行结果

Mon Oct 24 21:59:06 CST 2016
在字符串转日期操作时,需要注意给定的模式必须和给定的字符串格式匹配,否则会抛出java.text.ParseException异常,例如下面这个就是错误的,字符串中并没有给出时分秒,那么SimpleDateFormat当然无法给你凭空解析出时分秒的值来

  1. package com.test.dateFormat;

  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;

  4. import org.junit.Test;

  5. public class String2Date {
  6.     @Test
  7.     public void test() throws ParseException {
  8.         String string = "2016-10-24";
  9.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  10.         System.out.println(sdf.parse(string));
  11.     }
  12. }
复制代码
运行报错

  1. Exception in thread "main" java.text.ParseException: Unparseable date: "2016-10-24"
  2.     at java.text.DateFormat.parse(DateFormat.java:366)
  3.     at com.test.dateFormat.String2Date.main(String2Date.java:19)
复制代码
不过,给定的模式比字符串少则可以

  1. package com.test.dateFormat;

  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;

  4. import org.junit.Test;

  5. public class String2Date {
  6.     @Test
  7.     public void test() throws ParseException {
  8.         String string = "2016-10-24 21:59:06";
  9.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  10.         System.out.println(sdf.parse(string));
  11.     }
  12. }
复制代码
运行结果

Mon Oct 24 00:00:00 CST 2016
可以看出时分秒都是0,没有被解析,这是可以的。

3、输入日期,转化为毫秒数:用Date 方法()

代码

  1. public static void main(String[] args) throws ParseException {
  2.     /**
  3.      * 先用SimpleDateFormat.parse() 方法将日期字符串转化为Date格式
  4.      * 通过Date.getTime()方法,将其转化为毫秒数
  5.      */
  6.     String date = "2017-06-27 15-20-00";
  7.     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//24小时制
  8. //  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");//12小时制
  9.     long time = simpleDateFormat.parse(date).getTime();
  10.     System.out.println(time);
  11. }
复制代码
运行截图:






上一篇:某宝399元抖音拍摄106种技巧
下一篇:尚硅谷,传智黑马和java,Python,大数据,php,前端视频教程
帖子永久地址: 

架构师_程序员 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与架构师_程序员享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和架构师_程序员的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、架构师_程序员管理员和版主有权不事先通知发贴者而删除本文

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2019-8-22 01:51

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表