如何将含糊的字符串解析成Date? [英] How to parse ambiguous String into Date?

查看:144
本文介绍了如何将含糊的字符串解析成Date?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



该字符串可以是yyyyMMdd,yyyyMMddHHmm或yyyyMMddHHmmSS。

我试图找出一个将String解析成Date对象的简单方法。



目前,我正在查看String的长度,并根据长度创建一个DateParser。有没有更优雅的方式这样做?

解决方案

或者你可以用零填充你的字符串:

  SimpleDateFormat sdf = new SimpleDateFormat(yyyyMMddHHmmSS){
@Override
public Date parse(String s)throws ParseException {
return super.parse((s +000000)。substring(0,14));
}
};

System.out.println(sdf.format(sdf.parse(20110711182405)));
System.out.println(sdf.format(sdf.parse(201107111824)));
System.out.println(sdf.format(sdf.parse(20110711)));


I'm trying to figure out a "simple" way of parsing a String into a Date Object.

The String can be either yyyyMMdd, yyyyMMddHHmm or yyyyMMddHHmmSS.

Currently, I'm looking at the length of the String, and creating a DateParser depending on the length. Is there a more elegant way of doing this?

解决方案

Or you can pad your string with zeros:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmSS") {
  @Override
  public Date parse(String s) throws ParseException {
    return super.parse((s + "000000").substring(0, 14));
  }
};

System.out.println(sdf.format(sdf.parse("20110711182405")));
System.out.println(sdf.format(sdf.parse("201107111824")));
System.out.println(sdf.format(sdf.parse("20110711")));

这篇关于如何将含糊的字符串解析成Date?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆