在今天开发过程中,遇到一个转化问题,先简单描述一下,在action类中定义了一个String[]数组类型的时间类,用于接收用户提交的时间字段做查询,传过来的是一个类似
“yyyy-mm-dd”的形式,但由于在后台对sql操作需要的是整毫秒型,所以需做转下转换,下面是我的代码
String[] beginTime = paramMap.get("beginTime");
if (beginTime != null && beginTime.length > 0) {
String stime = beginTime[0];
if(stime.length()==0){
queryParam.addQueryParam("startTime", stime);
}
else{
Calendar c = Calendar.getInstance();
try {
c.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(stime));
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("时间转化后的毫秒数为:" + c.getTimeInMillis());
queryParam.addQueryParam("startTime", c.getTimeInMillis());
}
}
今天才知道Calendar这个类,一般是这样给Calendar类创建对象的:Calendar cal = Calendar.getInstance();
这是因为Calendar类的构造函数是protected,不能直接调用;而Calendar类中的getInstance方法却是静态的,可以通过类名直接引用
用上面方法创建出来的Calendar是包含了默认的语言和时区的,想要给calendar赋值可以这样:
Data date = new Date();
cal.setTime(date);
详见:http://blog.csdn.net/joyous/article/details/9630893(借鉴)
当然也可以自己给它赋值,例如我上面那样,把传过来的数值set给Calendar类中,set过程中又使用了SimpleDateFormat这个类,
SimpleDateFormat类也是我第一次使用,详见:http://blog.csdn.net/gubaohua/article/details/575488(借鉴)