struts的date标签和oracle中时间的转换,生成dto的方法

在用<s:property value="orderDate" />时,当取到的属性是date类型时,它会显示成为yy-MM-dd。

两种解决方案:

或者:dto,把数据库中的date转化为string类型

或者:用struts的date标签, 这样可以按照指定格式显示出来


先说后者:

<s:date name="orderDate" format="yyyy-MM-dd" />,注意,大写的M和小写的m是不一样的。

还可以有nice属性:Nice: 指定是否输出指定日期与当前时刻之间的时差。可以设为true或者false,表示是否漂亮地显示日期,如果设置为true,那么将FORMAT属性将不会生效

Format
(1)当nice="false"时,format属性将起作用,如:"yyyy- MM-dd hh:mm:ss",其中,y是年(year),M是月(Month),d是日(day),h是小时(hour,12小时制),H也是小 时(hour,24小时制),m是分钟(minute),s是秒(second)。
(2)当format未设置时,将会使用默认的格式DateFormat.MEDIUM format


再说前者:

前者就要从oracle中转成对象,时,将其设为指定的格式:


public List queryForPage(int offset, int length) {
SQLQuery query = null;
String resultSql = "select PLATE_ALARM_ID as alarmId,ENABLE as isEnable," +
"ALARM_COMPANY as alarmCompany,PLATE_INFO as plateNo," +
"to_char(START_TIME,'yyyy-mm-dd') as startTime,to_char(END_TIME,'yyyy-mm-dd') as endTime," +
"ALARM_RESON as alarmReason,user_def_name as alarmReasonStr," +
"PRIORITY as priority,CONTACT_PERSON as contactPersonName," +
"CONTACT_PHONE as contactPhoneNo,ALARM_REMARK as description from HPS_PLATEALARMINFO h,hps_userdefine u where h.alarm_Reson=u.user_def_id";
query = (SQLQuery) getSession().createSQLQuery(resultSql)
.addScalar("alarmId", Hibernate.INTEGER)
.addScalar("isEnable", Hibernate.INTEGER)
.addScalar("alarmCompany", Hibernate.STRING)
.addScalar("plateNo", Hibernate.STRING)
.addScalar("startTime", Hibernate.STRING)
.addScalar("endTime", Hibernate.STRING)
.addScalar("alarmReason", Hibernate.INTEGER)
.addScalar("alarmReasonStr", Hibernate.STRING)
.addScalar("priority", Hibernate.INTEGER)
.addScalar("contactPersonName", Hibernate.STRING)
.addScalar("contactPhoneNo", Hibernate.STRING)
.addScalar("description", Hibernate.STRING)
.setFirstResult(offset)
.setMaxResults(length)
.setResultTransformer(Transformers.aliasToBean(HPSPlateAlarmDTO.class));

List<HPSPlateAlarmDTO> hPSPlateAlarmList = query.list();
return hPSPlateAlarmList;
}

转化为dto对象了。。


再说说to_char和to_date:

to_char 是把日期或数字转换为字符串
to_date 是把字符串转换为数据库中得日期类型

简单地说,一般从oracle中取数据,用to_char,向oracle中存数据,用to_date


 转换函数
 TO_CHAR
使用TO_CHAR函数处理数字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函数处理日期
TO_CHAR(date,’格式’);
 TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])
 TO_DATE
使用TO_DATE函数将字符转换为日期
TO_DATE(char[, '格式'])


 数字格式格式
9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
, 显示千位指示符


 日期格式
格式控制 描述
YYYY、YYY、YY 分别代表4位、3位、2位的数字年
YEAR 年的拼写
MM 数字月
MONTH 月的全拼
MON 月的缩写
DD 数字日
DAY 星期的全拼
DY 星期的缩写
AM 表示上午或者下午
HH24、HH12 12小时制或24小时制
MI 分钟
SS 秒钟
SP 数字的拼写
TH 数字的序数词
“特殊字符” 假如特殊字符
HH24:MI:SS AM 15:43:20 PM
DD “OF” MONTH 12 OF OCTOBER
DDSPTH fourteenth
Date的格式 ’18-5月-84’





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值