改变下拉日历的日期格式
在集智数据平台中,当选中下拉日历的某个日期之后,在单元格中日期格式会显示成:年-月-日,如2011-03-28。但是需求是多样的,某些客户想在选择一个日期之后,让日期格式变为:2011年3月28日。
其实在”填报专题”教程中,有讲到通过更改web-inf/lib下的datetimeformat.jar中的datetimeformat_en.properties和datetimeformat_zh.properties中的date,datetime的格式即可。其中datetimeformat_en.properties是英文环境下的日期格式,datetimeformat_zh.properties是中文环境下的日期格式。
但是如果按照教程上说的将这两个中英文环境下的properties文件的date和datetime改成:
Date=yyyy年mm月dd日
Datetime==yyyy年mm月dd日 HH:mm:ss
之后会发现所选择的日期中的中文变成了问号,日期格式变成了:2011??3??28??。
而且,无论怎么设置页面编码都不起作用,依然乱码。后来发现不能直接将date和datetime改成”yyyy年mm月dd日”的形式。要将汉字转换成16进制的数据,然后写在日期格式后面。也就是说应该改成如下样式:
date=yyyy\u5E74MM\u6708dd\u65E5
datetime=yyyy\u5E74MM\u6708dd\u65E5 HH:mm:ss
其中,\u5E74对应”年”字,\u6708对应”月”字,\u65E5对应”日”字。
效果如下图:
以下是将汉字转换成16进制的代码,通过一下代码可以将任何汉字转换成16进制的数据:
publicclassStrToBinstr {
publicString StrToBinstr2(String str) {
char[] strChar = str.toCharArray();
String result = “”;
for(inti = 0; i < strChar.length; i++) {
result += Integer.toBinaryString(strChar[i]) + ” “;
}
returnresult;
}
}
将汉字转换成16进制的数据,并以空格隔开。
以下是调用StrToBinstr类中的StrToBinstr2(String str):
publicclassta {
publicstaticvoidmain (String [] arg){
String S=“年月日“;
StrToBinstr S1=newStrToBinstr();
System.out.println(S1.StrToBinstr2(S));
}
}