Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在以dd-MMM-yyyy格式获取日期_Java_Date - Fatal编程技术网

Java 正在以dd-MMM-yyyy格式获取日期

Java 正在以dd-MMM-yyyy格式获取日期,java,date,Java,Date,我有如下所示的方法,其中日期以字符串的形式出现: public static java.sql.Date getSimpleDate11(String dateString) { if (dateString == null) { return null; } java.util.Date date = null; java.sql.Date sqlDate =null ; try { DateFormat df = new SimpleDateFormat("yyyy-M

我有如下所示的方法,其中日期以字符串的形式出现:

public static java.sql.Date  getSimpleDate11(String dateString) {

if (dateString == null) {
    return null;
}
java.util.Date date = null;
java.sql.Date sqlDate =null ;
try {

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    df.setLenient(false);
    date = df.parse(dateString);
     sqlDate = new java.sql.Date(date.getTime());


} catch (ParseException pe) {
    throw new RuntimeException("The date entered is invalid or has incorrect format"+ dateString);
}
return sqlDate;
现在我想更改格式:我想以dd-MMM-yyy格式存储日期

我该怎么办?

试试这段代码

String PATTERN="yyyy-MM-dd";
SimpleDateFormat dateFormat=new SimpleDateFormat();
dateFormat.applyPattern(PATTERN);
String date1=dateFormat.format(Calendar.getInstance().getTime());

java.util.Date.getTime()
方法返回此日期对象表示的自1970年1月1日00:00:00 GMT以来的毫秒数

public static void main(String[] args) throws ParseException {

     String dateString="2014-03-21";
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
     Date date=df.parse(dateString);
     System.out.println("date:"+date);
     df=new SimpleDateFormat("dd-MMM-yyyy");
     System.out.println("Formated Date:"+df.format(date));
     System.out.println("date.getTime"+date.getTime());


}
现在我想更改格式,我想以
dd-MMM-yyyy

您不需要显式转换为请求的日期格式
dd-MMM-yyyy

日期与日期格式没有直接关系。在插入数据库表的日期字段之前,SQL驱动程序类将转换为正确的数据库特定格式

使用MySQL驱动程序

// this statement will cause sql date as '2014-03-21'  
new java.sql.Date( new java.until.Date().getTime() );
mysql> show variables like 'date_format';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| date_format   | %Y-%m-%d |
+---------------+----------+
1 row in set (0.00 sec)

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2014-03-21 |
+------------+
1 row in set (0.05 sec)
在大多数数据库中,默认格式为
YYYY-MM-DD

示例(MySQL)

// this statement will cause sql date as '2014-03-21'  
new java.sql.Date( new java.until.Date().getTime() );
mysql> show variables like 'date_format';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| date_format   | %Y-%m-%d |
+---------------+----------+
1 row in set (0.00 sec)

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2014-03-21 |
+------------+
1 row in set (0.05 sec)
详细示例

public class SimpleDateFormat_Example {
    public static void main(String[] args) throws Exception {
        String dateInputPattern = "yyyy-MM-dd"; // numeric 2 digit month
        String dateTargetPattern = "yyyy-MMM-dd"; // For 3 char month name
        String dateString = "2014-03-20";

        patternTest( dateInputPattern, dateString, dateTargetPattern );

        System.out.println();

        // day of month first and then 2 digit month
        dateInputPattern = "yyyy-dd-MM";  
        dateString = "2014-21-03";
        dateTargetPattern = "yyyy-MMMM-dd, EEEE"; // for Full month name

        patternTest( dateInputPattern, dateString, dateTargetPattern );
    } // psvm( ... )

    public static void 
    patternTest( String dateInputPattern, 
                 String dateString, 
                 String dateTargetPattern ) throws Exception {
        java.text.SimpleDateFormat sdf = 
            new java.text.SimpleDateFormat( dateInputPattern );
        java.util.Date date = sdf.parse( dateString );

        System.out.println( "Date Pattern: " + dateInputPattern );
        System.out.println( "Date String : " + dateString );
        System.out.println( "Date Value  : " + date );
        sdf.applyPattern( dateTargetPattern );
        System.out.println( "Target Pattern: " + dateTargetPattern );
        System.out.println( "Pattern based Date Value: " + sdf.format(date) );

        java.sql.Date sqlDate = new java.sql.Date( date.getTime() );
        System.out.println( "But, SQL Date: " + sqlDate );
    } // patternTest( s, s, s )
} // end of class SimpleDateFormat_Example
Date Pattern: yyyy-MM-dd
Date String : 2014-03-20
Date Value  : Thu Mar 20 00:00:00 IST 2014
Target Pattern: yyyy-MMM-dd
Pattern Formatted Date Value: 2014-Mar-20
But, SQL Date: 2014-03-20

Date Pattern: yyyy-dd-MM
Date String : 2014-21-03
Date Value  : Fri Mar 21 00:00:00 IST 2014
Target Pattern: yyyy-MMMM-dd, EEEE
Pattern Formatted Date Value: 2014-March-21, Friday
But, SQL Date: 2014-03-21
如果您运行上述程序,您将看到以下结果

结果

public class SimpleDateFormat_Example {
    public static void main(String[] args) throws Exception {
        String dateInputPattern = "yyyy-MM-dd"; // numeric 2 digit month
        String dateTargetPattern = "yyyy-MMM-dd"; // For 3 char month name
        String dateString = "2014-03-20";

        patternTest( dateInputPattern, dateString, dateTargetPattern );

        System.out.println();

        // day of month first and then 2 digit month
        dateInputPattern = "yyyy-dd-MM";  
        dateString = "2014-21-03";
        dateTargetPattern = "yyyy-MMMM-dd, EEEE"; // for Full month name

        patternTest( dateInputPattern, dateString, dateTargetPattern );
    } // psvm( ... )

    public static void 
    patternTest( String dateInputPattern, 
                 String dateString, 
                 String dateTargetPattern ) throws Exception {
        java.text.SimpleDateFormat sdf = 
            new java.text.SimpleDateFormat( dateInputPattern );
        java.util.Date date = sdf.parse( dateString );

        System.out.println( "Date Pattern: " + dateInputPattern );
        System.out.println( "Date String : " + dateString );
        System.out.println( "Date Value  : " + date );
        sdf.applyPattern( dateTargetPattern );
        System.out.println( "Target Pattern: " + dateTargetPattern );
        System.out.println( "Pattern based Date Value: " + sdf.format(date) );

        java.sql.Date sqlDate = new java.sql.Date( date.getTime() );
        System.out.println( "But, SQL Date: " + sqlDate );
    } // patternTest( s, s, s )
} // end of class SimpleDateFormat_Example
Date Pattern: yyyy-MM-dd
Date String : 2014-03-20
Date Value  : Thu Mar 20 00:00:00 IST 2014
Target Pattern: yyyy-MMM-dd
Pattern Formatted Date Value: 2014-Mar-20
But, SQL Date: 2014-03-20

Date Pattern: yyyy-dd-MM
Date String : 2014-21-03
Date Value  : Fri Mar 21 00:00:00 IST 2014
Target Pattern: yyyy-MMMM-dd, EEEE
Pattern Formatted Date Value: 2014-March-21, Friday
But, SQL Date: 2014-03-21
仔细看看SQL日期,它在所有输出中都有相同的模式。这也与
select curdate()
模式的结果相匹配,如本答案顶部所示

结论

public class SimpleDateFormat_Example {
    public static void main(String[] args) throws Exception {
        String dateInputPattern = "yyyy-MM-dd"; // numeric 2 digit month
        String dateTargetPattern = "yyyy-MMM-dd"; // For 3 char month name
        String dateString = "2014-03-20";

        patternTest( dateInputPattern, dateString, dateTargetPattern );

        System.out.println();

        // day of month first and then 2 digit month
        dateInputPattern = "yyyy-dd-MM";  
        dateString = "2014-21-03";
        dateTargetPattern = "yyyy-MMMM-dd, EEEE"; // for Full month name

        patternTest( dateInputPattern, dateString, dateTargetPattern );
    } // psvm( ... )

    public static void 
    patternTest( String dateInputPattern, 
                 String dateString, 
                 String dateTargetPattern ) throws Exception {
        java.text.SimpleDateFormat sdf = 
            new java.text.SimpleDateFormat( dateInputPattern );
        java.util.Date date = sdf.parse( dateString );

        System.out.println( "Date Pattern: " + dateInputPattern );
        System.out.println( "Date String : " + dateString );
        System.out.println( "Date Value  : " + date );
        sdf.applyPattern( dateTargetPattern );
        System.out.println( "Target Pattern: " + dateTargetPattern );
        System.out.println( "Pattern based Date Value: " + sdf.format(date) );

        java.sql.Date sqlDate = new java.sql.Date( date.getTime() );
        System.out.println( "But, SQL Date: " + sqlDate );
    } // patternTest( s, s, s )
} // end of class SimpleDateFormat_Example
Date Pattern: yyyy-MM-dd
Date String : 2014-03-20
Date Value  : Thu Mar 20 00:00:00 IST 2014
Target Pattern: yyyy-MMM-dd
Pattern Formatted Date Value: 2014-Mar-20
But, SQL Date: 2014-03-20

Date Pattern: yyyy-dd-MM
Date String : 2014-21-03
Date Value  : Fri Mar 21 00:00:00 IST 2014
Target Pattern: yyyy-MMMM-dd, EEEE
Pattern Formatted Date Value: 2014-March-21, Friday
But, SQL Date: 2014-03-21
尽管您使用脚本语言为日期类型数据库字段设置并应用了特定的模式,但它将仅存储在为数据库日期类型定义的
default
模式中


因此,将模式从
yyyy-MM-dd
转换为
yyy-MM-dd
并发送到数据库不会影响和更改任何内容。

2014-07-23是输入字符串,现在您需要
2014年7月23日
?您试图执行的代码是什么,您的实际输入,您的预期输出,你的实际输出是什么?@Maba是的,我想要格式为2014年7月23日@JBNizet所说的。用更多信息更新您的问题。对。一定很难看到asiya在哪里指定了模式,并将其更改为您想要的模式。