Java编程中将String类型转为Date类型实例

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

Letter    Description        Examples
y        Year                2015
M        Month in year        Nov, 11, 7
d        Day in month        1-31
E        Day name in week    Friday, Sunday
a        Am/pm marker        AM, PM
H        Hour in day            0-23
h        Hour in am/pm        1-12
m        Minute in hour        0-60
s        Second in minute    0-60

1. Date = 7-Nov-2015

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
    String dateInString = "7-Nov-2015";

    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
    
Output

Mon Nov 07 00:00:00 MYT 2015
07-Nov-2015

2. Date = 07/06/2015

    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    String dateInString = "07/06/2015";

    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
    
Output
Mon Nov 07 00:00:00 MYT 2015
07/06/2015

3. Date = Nov 7, 2015

    SimpleDateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
    String dateInString = "Nov 7, 2015";        

    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
Output

Mon Nov 07 00:00:00 MYT 2015
Nov 07, 2015

4. Date = Fri, Nov 7 2015

    SimpleDateFormat formatter = new SimpleDateFormat("E, MMM dd yyyy");
    String dateInString = "Fri, Nov 7 2015";        
        
    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
    
Output
Mon Nov 07 00:00:00 MYT 2015
Mon, Nov 07 2015

 
2. Date and Time Example
1. Date and Time = Friday, Nov 7, 2015 12:10:56 PM

    SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
    String dateInString = "Friday, Nov 7, 2015 12:10:56 PM";        
        
    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
    
Output
Mon Nov 07 12:10:56 MYT 2015
Monday, Nov 07, 2015 12:10:56 PM

java中Date与String的相互转化

1:大体思路

这种转换要用到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";
java.util.Date date=sdf.parse(dstr);

日期转换成字符串:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date=new java.util.Date();
String str=sdf.format(date);

2:程序实例

package test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class StringOrDate {
    public static String dateToString(Date date, String type) {
        String str = null;
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        if (type.equals("SHORT")) {
            // 07-1-18
            format = DateFormat.getDateInstance(DateFormat.SHORT);
            str = format.format(date);
        } else if (type.equals("MEDIUM")) {
            // 2007-1-18
            format = DateFormat.getDateInstance(DateFormat.MEDIUM);
            str = format.format(date);
        } else if (type.equals("FULL")) {
            // 2007年1月18日 星期四
            format = DateFormat.getDateInstance(DateFormat.FULL);
            str = format.format(date);
        }
        return str;
    }
    public static Date stringToDate(String str) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            // Fri Feb 24 00:00:00 CST 2012
            date = format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 2012-02-24
        date = java.sql.Date.valueOf(str);
                                            
        return date;
    }
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(StringOrDate.dateToString(date, "MEDIUM"));
        String str = "2012-2-24";
        System.out.println(StringOrDate.stringToDate(str));
    }

时间: 2024-09-25 12:46:26

Java编程中将String类型转为Date类型实例的相关文章

pb中将已经建好的Grid类型转为Tabular类型

作者:达通兴电脑科技公司(www.study01job.com) 郭宝利 如何将一建好的Grid数据窗口,不重新生成的情况下改变成FreeForm格式的数据窗口? 如果是在PowerBuilder8.0以上版本中,选中该数据窗口,点击鼠标右键,在弹出菜单中选择Edit Source,打开数据窗口的源代码,修改第2行中的processing属性,由1改为0就可以了. 如果在其它版本的PB中,只能首先导出数据窗口的语法,修改完之后再导入就可以了.

java编程中捕获多个异常try实例

Java 7使得我们能够在同一个catch语句块中捕获多种不同的异常,这也叫做多重异常捕获. 在java7以前,我们可能要这样做:  代码如下 复制代码 try {     // execute code that may throw 1 of the 3 exceptions below. } catch(SQLException e) {     logger.log(e); } catch(IOException e) {     logger.log(e); } catch(Except

date-怎样在页面上将Date类型的数据显示成String类型的

问题描述 怎样在页面上将Date类型的数据显示成String类型的 如下: 数据库: 页面显示: 数据库里面这样写的sql语句可以,但在代码种这样写报错 页面上用于显示的 请问有什么方法可以在页面上进行转换,或者在代码中进行 解决方案 string 类型转换成date类型将String类型的数据转换成Date类型java date类型转换成String类型格式 解决方案二: string类型转为date类型,然后再转为string就好了,可以指定格式.如: DateTime time = (Da

java string类型不能插入到oracle date类型?

问题描述 java string类型不能插入到oracle date类型? 如题!我如果把java改成Date类型就总是报空指针异常.而我改成string又不让插入数据库 解决方案 已解决,问题出在驱动上,换成ojdbc6.jar就解决了.谢谢楼上的耐心解答 解决方案二: 用oracle的to_date函数转换一下即可插入. http://database.51cto.com/art/201010/231193.htm 解决方案三: 用 java.sql.Date不是java.util.Date

string-后台取到的值为String类型,数据库里是Date类型,怎么把String转换Date呢

问题描述 后台取到的值为String类型,数据库里是Date类型,怎么把String转换Date呢 怎么把一个String类型的时间:比如2010-03-26 00:03:18 转换成 Date类型的时间,格式不变,依然是2010-03-26 00:03:18这样的格式.用SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); 转换成的效果为 Fri Mar 26 00:20:18 CST 2010 ,求解! 解决方案 /** * <b>说明: &

声明Date类型提示错误,有图。

问题描述 这个类的载入项有这两个:import java.sql.*;import java.util.*;然后我在后面有一个取数据库字段的表达式,声明的是一个Date类型的变量,但是编译的时候提示出错"The type Date is ambiguous".请问一下:sql.date和util.date有什么区别?如果我的类中同时出现变量的类型是Date以及数据库的字段类型是Date,我该怎么办?载入哪一个?还是怎么处理? 问题补充:asyty 写道 解决方案 楼主,错误信息翻译是,

String类型怎么装换为java.sql.Date类型

问题描述 String类型怎么装换为java.sql.Date类型 在java中如何将String类型转换成java.sql.Date类型 解决方案 问题出在你的格式化字符串上.参考官网文档Class SimpleDateFormat格式化字符串是有保留字符的,每个字符代表不同的意义,区分大小写.大写的M表示的是月份,不是说你用在的时间的位置它就表示时间了.所以把时间格式化字符串改成yyyy-MM-dd HH:mm:ss,就能正确输出了. 解决方案二: 在java中如何将String类型转换成j

Java.util.Date类型的转化成为数据库中的Date类型。

最完整的一个网页:http://www.zxbc.cn/html/20080905/65272.html   作者:天涯 来源:中国自学编程网 发布日期:1220576012 在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了.代替它的是Calendar. 而在java.sql.Date 和 java.util.Date之间,有些微妙的关系. 如何将Date类型插入数据库中,成为好多人的一个不小的障碍. 当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动

hibernate中java.util.Date类型映射

在Hibernate中对于java.util.Date类型的映射为: java类型 Hibernate类型 Mysql类型 java.util.Date.java.sql.Date date DATE java.util.Date.java.sql.Time time TIME java.util.Date.java.sql.Timestamp timestamp TIMESTAMP 如果使用timestamp作为Date类型映射时,具体代码如下: Java代码 public class Use