当我尝试将字符串转换为日期时出现异常:
String da="16-Jan-2014 10:25:00";
SimpleDateFormat sdf = new SimpleDateFormat("dd-mmm-yyyy HH:mm:SS", Locale.ENGLISH);
Date dd = sdf.parse(da);
我的代码有什么问题?
java.text.ParseException: Unparseable date:"16-Jan-2014 10:25:00" (at offset 3)
提前感谢...
答案 0 :(得分:4)
你几个月来一直在使用小写字母。它们应该改成大写字母M'。如下所述:http://developer.android.com/reference/java/text/SimpleDateFormat.html
所以模式将是这样的:
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm:SS", Locale.ENGLISH);
答案 1 :(得分:1)
考虑以下示例
String text = "2014-01-17T00:00:00.000-0500";
DateFormat sdf = new SimpleDateFormat("yyyy-MMM-dd'T'HH:mm:ss.SSSZ");
希望这可以帮助
答案 2 :(得分:1)
如 @Tim Kranen 所述,月份格式为大写字母。所以它应该是MMM
。
要了解月份格式,请考虑这个简短的代码 -
/*
Formatting month using SimpleDateFormat
This example shows how to format month using Java SimpleDateFormat class. Month can
be formatted in M, MM, MMM and MMMM formats.
*/
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormattingMonth {
public static void main(String[] args) {
//create Date object
Date date = new Date();
//formatting month in M format like 1,2 etc
String strDateFormat = "M";
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
System.out.println("Current Month in M format : " + sdf.format(date));
//formatting Month in MM format like 01, 02 etc.
strDateFormat = "MM";
sdf = new SimpleDateFormat(strDateFormat);
System.out.println("Current Month in MM format : " + sdf.format(date));
//formatting Month in MMM format like Jan, Feb etc.
strDateFormat = "MMM";
sdf = new SimpleDateFormat(strDateFormat);
System.out.println("Current Month in MMM format : " + sdf.format(date));
//formatting Month in MMMM format like January, February etc.
strDateFormat = "MMMM";
sdf = new SimpleDateFormat(strDateFormat);
System.out.println("Current Month in MMMM format : " + sdf.format(date));
}
}
/*
Typical output would be
Current Month in M format : 2
Current Month in MM format : 02
Current Month in MMM format : Feb
Current Month in MMMM format : February
*
使用上面提到的示例检查Java Date Formatting以了解格式。