国际化相关处理方案
Collections.sort(Data, new Comparator<JSONObject>()
{
@Override public int compare(JSONObject o1, JSONObject o2)
{
try
{
Comparator<Object> com = Collator.getInstance(java.util.Locale.ENGLISH);
if (sysLocale.getId() == KO_LOCALE_ID)
{
com = Collator.getInstance(java.util.Locale.KOREA);
}
if (sysLocale.getId() == JA_LOCALE_ID)
{
com = Collator.getInstance(java.util.Locale.JAPAN);
}
return com.compare(o1.getString(KeyPet.PINYIN_NAME),o2.getString(KeyPet.PINYIN_NAME));
}catch (JSONException e)
{
e.printStackTrace();
}
return 0;
}
});
- 时间处理(全部采用unix时间戳精确至秒或者是毫秒) 原因如下
- 时间序列化后容易被js或者其他语言处理,不需要根据任何格式来转换,容易出异常。java和js构造都包含unix时间戳入参来构造,然后转为自己所需要的格式,在逻辑层可以通过不同的时区进行转换。
- mysql中的时间戳单位是有时间限制的,如果存为长整形的unix时间戳将不会出现时间限制
- 极度不推荐使用yyyy-MM-dd等格式json序列化的方式直接放置在json报文当中,每次js或者java处理时,首先得转为时间,其次再转为自己想要的字符串格式,造成性能浪费以及异常抛出,并且不包含时区等信息。