在couresea上做一个作业的时候碰到了这样的需求对下面的字符串生成Date对象。
String s = "23/Sep/2015:07:47:11-0400";
实际上就是apache服务器的日志里的那段时间。花了一点点时间才把坑填上具体应该写成如下形式的代码。
String s = "23/Sep/2015:07:47:11-0400";
DateFormat format = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ssZ", Locale.ENGLISH);
Date date = null;
try{
date = format.parse(string);
} catch(Exception e){
System.out.println("error");
}
System.out.println(date);
要注意的几个点:1.异常处理,如果不写,编译器提示需要异常处理,以前2016年左右的博客大部分没有提到这个问题。
2.format生成的时候注意要加上
Locale.ENGLISH
要不然格式不一定会匹配
相关链接StackOverflow
3.Sep的表示应该写成MMM,如果写全月份的英文名应该用MMMM
相关链接Java官方文档