在用<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’