Java SimpleDateFormate.parse()转换指定字符串为Date

java中SimpleDateFormate.parse将符合格式的指定字符串转换为Date,格式可以为:2018-10-01 10:00:00,2018年10月01日等。SimpleDateFormate.parse()默认不校验日期准确,只要符合格式,及时日期写错了也会顺加日期得到新的Date对象。

定义

//返回对字符串类型的日期/时间解析后生成的Date对象
public Date parse(String source) throws ParseException

执行该方法需要处理ParseException异常。

常用函数语法

y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒

例子

public static void main(String[] args) throws ParseException {
	SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//Date指定格式:yyyy-MM-dd HH:mm:ss:SSS
	String string = "2019-7-20 10:00:10:111";
	Date d = simpleDateFormat.parse(string);//传入的格式必须符合simpleDateFormat对象的格式,即"yyyy-MM-dd HH:mm:ss:SSS" 否则会报错
	System.out.println(d);
}

传递进来的String类型的字符串,其格式必须和SimpleDateFormate里面的参数形式一直,不能任何格式的字符串都可以转化,要不出现转发异常。

public static void main(String[] args) throws ParseException {  
	DateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
	format.setLenient(false);  //强制校验时间是否正确
	Date d= format.parse("33/10/2017");  
	System.out.println(d);  
}

如果设置format.setLenient(false),则会报错,如果不加入这行代码日期会顺加,打出的日期会是:2017-11-02。

simpledateformat.parse()默认是弱校验的,如果加入format.setLenient(false),则会强制校验日期。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。