我有一个joda DateTime值存储在mysql中作为String。
但是当我尝试从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”
请帮帮我。
答案 0 :(得分: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);
}
} `
答案 1 :(得分:2)
试试这个,只需将字符串传递给此方法并获取date的值
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;
}
答案 2 :(得分:0)
试试这个
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
Date date = df.parse("2012-10-04 00:00:00.0");
答案 3 :(得分:0)
正确的格式是:
"yyyy-MM-dd hh:mm:ss.S"
答案 4 :(得分: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。
ClassWhichContainsTheVariableYouGotTheResultInTo
表示要在其中返回sql值的(例如,Main.java)的类名,txtVariable.getText()
是对诸如textfield或label之类的变量的引用,或者其他你把价值归还了。转换完成后,您可以使用javaDate1
或sqlDate1
,具体取决于您想要的日期类型。