0

我有一个 joda DateTime 值作为字符串存储在 mysql 中。

但是当我尝试从 mysql 表中获取这个字符串时,它的格式会发生变化,当我尝试将这个字符串转换为 DateTime 时,它​​会抛出:-

IllegalArgumentException: Invalid format: "2012-10-04 00:00:00.0" is malformed at "  00:00:00.0"

在 Mysql 表中,我可以看到值为“2012-10-04 00:00:00”,但是当我从 mysql 获取这个时间时,它打印为“2012-10-04 00:00:00.0”。

请帮我。

4

5 回答 5

2
   `String dob="your date String";
    //2013-jan-12 == 2013-01-12
    String dobis=null;
    final DateFormat df = new SimpleDateFormat("yyyy-MMM-dd");
    final Calendar c = Calendar.getInstance();
    try {
        if(dob!=null && !dob.isEmpty() && dob != "")
        {
        c.setTime(df.parse(dob));
        int month=c.get(Calendar.MONTH);
        month=month+1;
        dobis=c.get(Calendar.YEAR)+"-"+month+"-"+c.get(Calendar.DAY_OF_MONTH);
        }

    } `
于 2013-08-09T10:59:30.180 回答
2

试试这个,只需将一个字符串传递给这个方法并获取日期的值

public String DateToDateFormat(String dateandTime) {
    final Calendar calendar = Calendar.getInstance();
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
    try {
        calendar.setTime(df.parse(dateandTime));
    } catch (java.text.ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    int yearofsendingmsg = calendar.get(Calendar.YEAR);
    // int monthofsendingmsg = calendar.get(Calendar.MONTH) + 1;
    int dayofsendingmsg = calendar.get(Calendar.DAY_OF_MONTH);
    java.util.Date d = new java.util.Date(calendar.getTimeInMillis());
    String monthofsendingmsg = new SimpleDateFormat("MMM").format(d);
    String date = dayofsendingmsg + " " + monthofsendingmsg + " "
            + yearofsendingmsg;
    return date;
}
于 2013-08-16T10:37:55.967 回答
0
String newF="yyyy-MM-dd hh:mm:ss";
String oldF="yyyy-MM-dd hh:mm:ss.S";
SimpleDateFormat sdf1=new SimpleDateFormat(oldF);
SimpleDateFormat sdf2=new SimpleDateFormat(newF);
String txt1=ClassWhichContainsTheVariableYouGotTheResultInTo.txtVariable.getText();

String date1=sdf2.format(sdf1.parse(txt1));
java.util.Date javaDate1=(Date)sdf2.parse(date1); //this converts it as java.util.Date
java.sql.Date sqlDate1=new java.sql.Date(theDate1.getTime()); //this converts it to java.sql.Date (if needed)

这样,您可以将 String 变量解析为您选择的 java.Date。表示您在其中返回 sql 值的ClassWhichContainsTheVariableYouGotTheResultInTo类名(例如 Main.java),并且txtVariable.getText()是对变量的引用,例如文本字段或标签,或者您将值返回到的任何内容。转换完成后,您可以使用javaDate1sqlDate1,具体取决于您想要的日期类型。

于 2013-08-09T10:52:18.037 回答
0

尝试这个

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
Date date = df.parse("2012-10-04 00:00:00.0");
于 2013-08-09T10:31:45.253 回答
0

正确的格式是:

 "yyyy-MM-dd hh:mm:ss.S"
于 2013-08-09T10:32:30.490 回答