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_Java_Date_Simpledateformat - Fatal编程技术网

将字符串日期强制转换为新格式Java

将字符串日期强制转换为新格式Java,java,date,simpledateformat,Java,Date,Simpledateformat,我试图将数据库中的字符串resultset格式转换为标准格式,但使用SimpleDataFormat会产生以下错误: Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(Unknown Source) at java.text.Format.format(Unknown Source) a

我试图将数据库中的字符串resultset格式转换为标准格式,但使用SimpleDataFormat会产生以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
at CopyEJ.CopyEJ.main(CopyEJ.java:113)

RROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:838]
通过De bug,我发现可变时间_stmp的值为“2013-04-19 17:29:06”,我想转换为:

yyyyMMddhhmmss
以下是代码:

SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");

        ResultSet rs_dt = cmd1.executeQuery(dt);

        String time_stmp = null;

        while (rs_dt.next())
        {
            time_stmp = rs_dt.getString(1);
        }

        StringBuilder ts = new StringBuilder( df.format( time_stmp ) );

实现这一点的最佳方法是什么?

您需要在此处使用
DateFormat.parse()
,因为参数的类型为
String
<另一方面,code>DateFormat.format()用于将
Date
对象格式化为
String

StringBuilder ts = new StringBuilder(df.format(df.parse(time_stmp)));

此外,建议将日期/时间数据保存为数据库中的
时间戳
,而不是
字符串

,您需要在此处使用
DateFormat.parse()
,因为参数的类型为
String
<另一方面,code>DateFormat.format()用于将
Date
对象格式化为
String

StringBuilder ts = new StringBuilder(df.format(df.parse(time_stmp)));
此外,建议将日期/时间数据保存为数据库中的
时间戳
,而不是用于将字符串转换为日期的
字符串

StringBuilder ts = new StringBuilder(df.format(df.parse(time_stmp)));
用于将日期转换为字符串

现在大家一起:

SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat stdFormat = new SimpleDateFormat("yyyyMMddhhmmss");
String s = stdFormat.format(dbFormat.parse(input));
您可以根据需要修改格式。

用于将字符串转换为日期

用于将日期转换为字符串

现在大家一起:

SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat stdFormat = new SimpleDateFormat("yyyyMMddhhmmss");
String s = stdFormat.format(dbFormat.parse(input));

您可以根据需要修改格式。

您的简单日期格式的日期模式错误。您必须使用数据库的模式解析它,然后将其解析回
String
。 试着这样做:

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    ResultSet rs_dt = cmd1.executeQuery(dt);

    String time_stmp = null;

    while (rs_dt.next())
    {
       time_stmp = rs_dt.getString(1);
    }
    Date d = null;
    try {
       Date d = df.parse(time_stmp);
    } catch (ParseException ex) {
        Logger.getLogger(Prime.class.getName()).log(Level.SEVERE, null, ex);
    }
    SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddhhmmss");

    StringBuilder ts = new StringBuilder( df2.format(d) );
顺便说一下:

如果希望输出为24小时格式,则必须使用模式
yyyyMMddHHmmss

您的简单日期格式具有错误的日期模式。您必须使用数据库的模式解析它,然后将其解析回
String
。 试着这样做:

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    ResultSet rs_dt = cmd1.executeQuery(dt);

    String time_stmp = null;

    while (rs_dt.next())
    {
       time_stmp = rs_dt.getString(1);
    }
    Date d = null;
    try {
       Date d = df.parse(time_stmp);
    } catch (ParseException ex) {
        Logger.getLogger(Prime.class.getName()).log(Level.SEVERE, null, ex);
    }
    SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddhhmmss");

    StringBuilder ts = new StringBuilder( df2.format(d) );
顺便说一下:

如果您希望输出为24小时格式,则必须使用模式
yyyyMMddHHmmss

问题是,从数据库检索的日期格式为
yyyy-dd-MM HH:MM:ss
,您正试图用格式
yyyyMMddHHmmss

你可以这样做

    String date = "2013-04-19 17:29:06";
    Date d = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss").parse(date);
    SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMddhhmmss");
    System.out.println(outputFormat.format(d));
`yyyy-MM-dd HH:mm:ss` //make sure you use uppercase H for 24 hour times

问题是,从DB检索到的日期格式是
yyyy-dd-MM HH:MM:ss
,您正试图用
yyyyymmddhhmmss

你可以这样做

    String date = "2013-04-19 17:29:06";
    Date d = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss").parse(date);
    SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMddhhmmss");
    System.out.println(outputFormat.format(d));
`yyyy-MM-dd HH:mm:ss` //make sure you use uppercase H for 24 hour times

就像是说你需要使用

SimpleDateFormat.parse()
如果字符串的格式为

`2013-04-19 17:29:06`
您需要构造SimpleDataFormat,以便像这样读入

    String date = "2013-04-19 17:29:06";
    Date d = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss").parse(date);
    SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMddhhmmss");
    System.out.println(outputFormat.format(d));
`yyyy-MM-dd HH:mm:ss` //make sure you use uppercase H for 24 hour times

就像是说你需要使用

SimpleDateFormat.parse()
如果字符串的格式为

`2013-04-19 17:29:06`
您需要构造SimpleDataFormat,以便像这样读入

    String date = "2013-04-19 17:29:06";
    Date d = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss").parse(date);
    SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMddhhmmss");
    System.out.println(outputFormat.format(d));
`yyyy-MM-dd HH:mm:ss` //make sure you use uppercase H for 24 hour times

您好,您可以根据自己的选择使用以下代码格式化日期(例如:yyyy MM dd HH:MM:ss)


您好,您可以根据自己的选择使用以下代码格式化日期(例如:yyyy MM dd HH:MM:ss)

这会奏效的

    SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd hhhh:mm:ss");
    String time_stmp ="2013-04-19 17:29:06";
    Date date=df.parse(time_stmp);
    StringBuilder ts = new StringBuilder( df.format( date ) );
    System.out.println(ts);
这会奏效的

    SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd hhhh:mm:ss");
    String time_stmp ="2013-04-19 17:29:06";
    Date date=df.parse(time_stmp);
    StringBuilder ts = new StringBuilder( df.format( date ) );
    System.out.println(ts);

这给了我一个错误“构造函数StringBuilder(Date)未定义”@user2385057-从那里想出来应该不会太难;-)@user2385057不使用toString(),因为这将使用
Date
的默认格式。改为使用自定义的
DateFormat
使用
parse()
后跟
format()
。检查更新。这会给我一个错误“构造函数StringBuilder(日期)未定义”@user2385057-从那里找出它应该不会太难;-)@user2385057不使用toString(),因为这将使用
Date
的默认格式。改为使用自定义的
DateFormat
使用
parse()
后跟
format()
。检查更新。可能要在此处检查日和月的顺序:)可能要在此处检查日和月的顺序:)