如何将字符串解析为 java.sql.date

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12844006/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 10:26:44  来源:igfitidea点击:

How to parse String to java.sql.date

javadatesql-date-functions

提问by Jason Amavisca

I have a String

我有一个字符串

String s = "01 NOVEMBER 2012";

Then I want parse it to sqlDate. And insert it into the database.

然后我想将它解析为 sqlDate。并将其插入到数据库中。

Is it possible to parse that string to sqlDate?!?!

是否可以将该字符串解析为 sqlDate ?!?!

Yup, sql date format is "yyyy-mm-dd"

是的,sql 日期格式是“yyyy-mm-dd”

回答by Jigar Joshi

Use SimpleDateFormatto parse String date to java.util.Date

用于SimpleDateFormat将字符串日期解析为 java.util.Date

java.util.Date utilDate = new SimpleDateFormat("dd MMM yyyy").parse("01 NOVEMBER 2012");

and then convert it to java.sql.Date using millis

然后使用millis将其转换为java.sql.Date

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

回答by DookieBlue

Expanding on Jigar Joshi answer.

扩展 Jigar Joshi 的答案。

This code has been able to handle whatever I've needed.

这段代码能够处理我需要的任何事情。

import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

Date date1;
Date date2;
Date date3;

    //converting string into sql date);
    try {
         date1 = new java.sql.Date(
                     ((java.util.Date) new SimpleDateFormat("dd MMM yyyy").parse("01 NOVEMBER 2012")).getTime());

        date2 = new java.sql.Date(
                    ((java.util.Date)newSimpleDateFormat("dd/MM/yyyy").parse("02/09/2012")).getTime());

        date3 = new java.sql.Date(
                    ((java.util.Date) new SimpleDateFormat("ddMMyyyy").parse("03092012")).getTime());

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

    System.out.println("sqlDate test1:" + date1);
    System.out.println("sqlDate test2:" + date2);
    System.out.println("sqlDate test3:" + date3);


    output:
           sqlDate test1:2012-11-01
           sqlDate test2:2012-09-02
           sqlDate test3:2012-09-03