改变下拉日历的日期格式

在集智数据平台中,当选中下拉日历的某个日期之后,在单元格中日期格式会显示成:年--日,如2011-03-28。但是需求是多样的,某些客户想在选择一个日期之后,让日期格式变为:2011328日。

其实在”填报专题”教程中,有讲到通过更改web-inf/lib下的datetimeformat.jar中的datetimeformat_en.propertiesdatetimeformat_zh.properties中的date,datetime的格式即可。其中datetimeformat_en.properties是英文环境下的日期格式,datetimeformat_zh.properties是中文环境下的日期格式。

但是如果按照教程上说的将这两个中英文环境下的properties文件的datedatetime改成:

Date=yyyymmdd

Datetime==yyyymmdd HH:mm:ss

之后会发现所选择的日期中的中文变成了问号,日期格式变成了:2011??3??28??

而且,无论怎么设置页面编码都不起作用,依然乱码。后来发现不能直接将datedatetime改成”yyyymmdd日”的形式。要将汉字转换成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类中的StrToBinstr2String str:

publicclassta {

publicstaticvoidmain (String [] arg){

String S=年月日;

StrToBinstr S1=newStrToBinstr();

System.out.println(S1.StrToBinstr2(S));

}

}