您的位置:首页 > 编程语言 > Java开发

Java格式化日期

2015-12-23 14:58 357 查看
1.Java后台格式化方式

//格式化日期 pattern
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH24小时制、hh12小时制
String eventDate;
Date date = null;
eventDate =  formatter.format(entranceGuardUploadEvent.getEventDate());//Date类型转String类型
try {
date = formatter.parse(eventDate); //String转Date   不处理异常会报错
} catch (ParseException e) {
e.printStackTrace();
}
2.从页面直接获取Date类型

  (1)方法1(如果需要获取不同的格式,这种方法不适用,例如:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");</span>
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
)


            在Controller中重载InitBinder方法

            实现:      

@InitBinder
public void InitBinder(WebDataBinder dataBinder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
dataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
   (2)方法2使用注解(在Javabean特定的属性自定义日期格式),此种方法失败,自行研究

@JSONField(format = "yyyy-MM-dd HH:mm:ss")  //取日期时使用
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//存日期时使用
private Date startTime;


ps:格式化数字使用@NumberFormat注解

(3).也是使用@InitBinder注解

 
  首先,自定义一个类,可转换两种格式

public class DateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(text);
} catch (ParseException e) {
format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = format.parse(text);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
setValue(date);
}
}
     然后,实现initBinder方法,把这个方法放在BaseController中即可实现全局方法

@InitBinder
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor(Date.class, new DateEditor());
}
ps:这个项目中遇到yyyy-MM-dd 和 yyyy-MM-dd
 HH:mm:ss在一个页面中转换,用第一种方法直接实现initBinder方法会出错,所以使用了第三种方法!!!

          

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: