Java中Date与String的相互转换

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

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

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

 1 package com.test.dateFormat;
 2
 3 import java.text.SimpleDateFormat;
 4 import java.util.Date;
 5
 6 import org.junit.Test;
 7
 8 public class Date2String {
 9     @Test
10     public void test() {
11         Date date = new Date();
12         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
13         System.out.println(sdf.format(date));
14         sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
15         System.out.println(sdf.format(date));
16         sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
17         System.out.println(sdf.format(date));
18     }
19 }
1 2016-10-24
2 2016-10-24 21:59:06
3 2016年10月24日 21:59:06

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

 1 package com.test.dateFormat;
 2
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5
 6 import org.junit.Test;
 7
 8 public class String2Date {
 9     @Test
10     public void test() throws ParseException {
11         String string = "2016-10-24 21:59:06";
12         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
13         System.out.println(sdf.parse(string));
14     }
15 }
Mon Oct 24 21:59:06 CST 2016

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

 1 package com.test.dateFormat;
 2
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5
 6 import org.junit.Test;
 7
 8 public class String2Date {
 9     @Test
10     public void test() throws ParseException {
11         String string = "2016-10-24";
12         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
13         System.out.println(sdf.parse(string));
14     }
15 }

不过,给定的模式比字符串少则可以

 1 package com.test.dateFormat;
 2
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5
 6 import org.junit.Test;
 7
 8 public class String2Date {
 9     @Test
10     public void test() throws ParseException {
11         String string = "2016-10-24 21:59:06";
12         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
13         System.out.println(sdf.parse(string));
14     }
15 }
Mon Oct 24 00:00:00 CST 2016

可以看出时分秒都是0,没有被解析,这是可以的。

时间: 2024-12-15 17:37:44

Java中Date与String的相互转换的相关文章

Java中Date和String的相互转换

//Date到String //提示- SimpleDateFormat类概述 ? SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期 //Date到String 1.0SimpleDateFormat sdp = new SimpleDateFormat();String s=sdp.format(new Date());System.out.println(s);//2019/8/5 下午3:14   但一般我们不会需要中文 //Date到String

java中Date与String的相互转化

1:大体思路 [html] view plaincopy 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04-14"); 方法2: SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 String dstr="2008-4-24"; j

Java中char和String的相互转换

转自:http://blog.csdn.net/yaokai_assultmaster/article/details/52082763 Java中char是一个基本类型,而String是一个引用类型.有时候我们需要在它们之间互相转换. String转换为char 在Java中将String转换为char是非常简单的. 1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char. 2. 使用String.toCharArray()(返回值为

iOS中date和string的相互转换

必须知道的内容 G: 公元时代,例如AD公元     yy: 年的后2位     yyyy: 完整年     MM: 月,显示为1-12     MMM: 月,显示为英文月份简写,如 Jan     MMMM: 月,显示为英文月份全称,如 Janualy     dd: 日,2位数表示,如02     d: 日,1-2位显示,如 2     EEE: 简写星期几,如Sun     EEEE: 全写星期几,如Sunday     aa: 上下午,AM/PM     H: 时,24小时制,0-23

java中Date Calendar String SimpleDateFormat的关系

Date 唯一的职能是提供一个总毫秒数,在java 1.4后,所有getDay.getMonth这些函数都被废弃. Calendar 可以通过Date创建,也可以导出Date.作用是进行各种日历计算,如setFirstDayOfWeek(设置工作日的开始日). SimpleDateFormat可以将String和Date相互转换,要指定特定格式,如“yyyy-MM-dd”;

Java中如何将String转成Date

Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Json数据的过程中提供了便利的注解,但是反序列化却没有,于是就引出了下面的问题,我需要手工的将字符串转换为Date类型的数据,java.text.SimpleDateFormat 为我们提供了这种转换的基础设施.如下列出了的格式化模式的简单定义,如果 ‘M’ 大于等于3位, 月份会显示为字母,否则是数

JAVA中int、String的类型转换

int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valueOf(s).intValue();这两种方法有什么区别

Java中int与String间的类型转换

int -> String int i=12345;String s=""; 除了直接调用i.toString();还有以下两种方法第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valu

Java中Date各种相关用法

Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0 int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 注:在使用set方法之前,必须