我想把这样的一个日期转换成java的Date格式,请问最好的方法是什么?
11:00:00下午, 周六, 二月 27, 2016
如果要通配中英文,比如加上下面这种,最好的方法是什么?
3:55:00AM, Sun, Feb 28, 2016
如果没有jdk现在的话,建议使用java8的DLocalDate和LocalDateTime,在转化上面容易很多。
了解下SimpleDateFormat的日期格式就可以了,如果没有对应的格式,那就需要手动处理了
你可以使用 SimpleDateFormat 将字符串解析成 Date 对象
1 纯英文的比较好解析,比如你贴的这个
3:55:00AM, Sun, Feb 28, 2016
解析方式
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("K:mm:ssa, E, MMM dd, yyyy");//定义日期格式
try {
Date date = sdf.parse("3:55:00AM, Sun, Feb 28, 2016",
new ParsePosition(0));
System.out.println(date.toString());
} catch (Exception e) {
e.printStackTrace();
}
中文日期,需要先将其转化为可解析的英文字符串,比如下午替换成 pm,等等。
如果是项目中需要将日期字符串解析成Date,只需要确保生成的字符串适合解析就好了。万能的解析方式,应该是不存在的。
你这种不是标准形式,应该只能人工去处理吧。可以优先找下有没有对应的工具
嗯,最好的方法在这里,顺带一说,没有周六
这种东西,只有星期六
,一定要周六的话,只能自定义了。
String sdfStr = "hh:mm:ssa, E, MMM, dd, yyyy";
// E 星期几/英文模式下简写
// EEE 星期几/英文模式下全名
// M 数字月份 1-12 (en)
// MM 数字月份 01-12 (en)
// MMM 月份简写 Jan (en)
// MMMM 月份全名 January (en)
SimpleDateFormat sdf_en = new SimpleDateFormat(sdfStr, Locale.ENGLISH); //英文
SimpleDateFormat sdf_chs = new SimpleDateFormat(sdfStr, Locale.SIMPLIFIED_CHINESE); //简体中文
System.out.println(sdf_en.format(new Date()));
System.out.println(sdf_chs.format(new Date()));
输入:
11:53:55AM, Mon, Jan, 18, 2016
11:53:55上午, 星期一, 一月, 18, 2016