date类型只取时间前台输入的数据如何在数据库中修改增加
来源:互联网 发布:linux中pause 编辑:程序博客网 时间:2024/05/16 19:00
在写日历模块的时候遇到一个很有意思的问题,前台用的日历插件,只取时间部分,不需要年月日,数据库对应字段类型为date,但对数据的操作却不能成功,检查代码没有问题,几乎将代码重写仍然不能解决。
最后发现是因为date类型默认在数据库中保存时必须带年月日,单时间保存不了(oracle数据库),于是果断将数据库对应数据类型改为String,应为前台页面提交到后台的数据类型都会自动转为String,所以设置成String类型;这时候发现问题解决啦。为方便使用,查阅资料发现可以编写一个类,重写DefaultTypeConverter方法可以做到类型在date和String之间自由转换;该方法如下:
package huashen.commons;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import ognl.DefaultTypeConverter;
public class DateConverter extends DefaultTypeConverter {
public Object convertValue(Map context, Object value, Class toType) {
try {
if (toType == Date.class) { // 如果想转换的是Date类型时将做以下操作
// 因为在Struts2里会表单传过来的非字符串数据转换为String[],所以这里得取第一个值
String dataStr = ((String[]) value)[0];
SimpleDateFormat f;
switch (dataStr.length()) {
case 10:
f= new SimpleDateFormat("yyyy-MM-dd"); // 转换为自己想要日期格式
return f.parse(dataStr);
case 13:
f = new SimpleDateFormat("yyyy-MM-dd HH"); // 转换为自己想要日期格式
return f.parse(dataStr);
case 16:
f = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 转换为自己想要日期格式
return f.parse(dataStr);
case 19:
f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 转换为自己想要日期格式
return f.parse(dataStr);
default:
break;
}
} else if (toType == String.class) {
String dataStr = ((Date) value).toString();
return dataStr;
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
还需要在src下添加一个配置文件:xwork-conversion.properties,其内容为:java.util.Date=huashen.commons.interceptor.DateConverter
这样任何日期类型都可以实现灵活运用啦;希望对大家有用;
- date类型只取时间前台输入的数据如何在数据库中修改增加
- oracle数据库中输入date类型的数据
- 如何在Oracle中查询Date类型字段的数据
- oracle数据库中Date类型数据利用hibernate取值的位数问题
- 在Action中,取jsp中的数据保存数据库 date
- 往数据库里添加date(时间)类型的数据
- 往数据库里添加date(时间)类型的数据
- 如何获取sql数据中时间的月份、年份(类型date)
- 如何把数据库中的String类型的数据在jsp页面上转化为date类型的数据
- 在ORACLE中输入DATE类型的字段
- C#如何向oracle数据库中插入date类型的数据
- 如何把前台传的两个date类型在js中转换成天
- 如何在java类中向oracle数据库写入Date类型的日期
- SSH增加sqlserver数据库中datetime类型时间的值
- 使用Hibernate如何在Oracle中插入Date类型的数据
- js中new Date()只取日期或者只取时间值以及在原有日期向后推10天
- javaScript中取Date的前一天时间
- SQL语句oracle中如何插入Date类型的数据
- Java面试常见问题
- 小程序对移动app市场有怎样的冲击
- 在linux命令行中编译和运行java文件
- json
- quick3.3final精灵使用shader心得记录
- date类型只取时间前台输入的数据如何在数据库中修改增加
- Swift 构造过程 2
- 欢迎使用CSDN-markdown编辑器
- docs下的常用命令
- Android 格式化时间为分秒
- Linux MySQL 命令大全
- JPA ORM组件
- 多线程之线程同步
- 处理java错误:编码 GBK 的不可映射字符