



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泰国历与公历差异的处理问题:在jvm泰国本地环境下对2012-02-29进行格式化,结果显示为2012-03-01。分析:发现jvm泰国本地环境下拥有泰国当地的历法,此历法和公历不同。jvm在泰国按泰国历支持,而2012-02-29作为泰历,对应公历1469年,而公历1469年不是闰年,所以展示为泰历2012-03-01(公历1469-03-01)。目的:为了使泰国jvm按公历处理日期,修改方式有2种1, 从jvm底层修改api接口的那些class文件,反编译,修改,重新打jar包,替换到jvm路径下。2, 程序主动修改,规避自动按泰国历适应的情况。主要测试代码如下:import java.io.UnsupportedEncodingException;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import java.util.TimeZone;import java.util.regex.Matcher;import java.util.regex.Pattern;/java -Duser.timezone=PRC -Duser.language=th -Duser.region=TH -jar TestDate.jar yyyy-MM-dd 2012-02-29public class TestDate private static int daysInMonth = 31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31 ;public static void main(String args) String tmp=u0E80;try byte ttt=tmp.getBytes(gb18030);for(int i=0;ittt.length;i+)System.out.println(Integer.toHexString(ttti); catch (UnsupportedEncodingException e2) / TODO Auto-generated catch blocke2.printStackTrace();if (args.length != 2) System.out.println(info1);return;String mode = args0;String date = args1;try SimpleDateFormat tmpformat = new SimpleDateFormat(mode); /$NON-NLS-1$SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd); /$NON-NLS-1$/下面2行能解决泰国历公历问题/SimpleDateFormat tmpformat = new SimpleDateFormat(mode,new Locale(en,US); /$NON-NLS-1$/SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd,new Locale(en,US); if (date.length() != 10) try formatter.parse(date); catch (ParseException e1) / TODO 自动生成 catch 块System.out.println(info2 + e1);/ 增加正则校验Pattern yyyyMMddDatePattern = Ppile(0-94)-(01-9|10-2)-(01-9|1-20-9|30-1);Matcher matcher = yyyyMMddDatePattern.matcher(date);if (!matcher.matches() System.out.println(info3);int year = Integer.parseInt(date.substring(0, 4);int month = Integer.parseInt(date.substring(5, 7);int day = Integer.parseInt(date.substring(8, 10);if (year 0) System.out.println(info4);/ 缩位输入年份,前面补齐20if (year = 99)year += 2000;if (month 12) System.out.println(info5);GregorianCalendar tmpCal = new GregorianCalendar(); /无泰历公历区分,只按公历处理tmpCal.set(Calendar.YEAR, year);int daysNum = daysInMonthmonth - 1;if (tmpCal.isLeapYear(year) & month = 2) System.out.println(info6 + daysNum);daysNum+;if (day daysNum) System.out.println(info7 + daysNum);System.out.println(info8 + daysNum);/Calendar cdate = Calendar.getInstance(new Locale(en,US); 不能解决问题Calendar cdate = formatter.getCalendar();cdate.setTime(formatter.parse(date);System.out.println(tmpformat.format(cdate.getTime();long l=formatter.parse(date).getTime();System.out.println(time +l);System.out.println(TimeZone.getDefault();System.out.println(Locale.getDefault();/Date
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61754-13:2024 CMV EN Fibre optic interconnecting devices and passive components - Fibre optic connector interfaces - Part 13: Type FC-PC connector family
- 古诗三首登鹳雀楼、静夜思、望庐山瀑布解析:小学语文教学教案
- 写景色的变化:从冬到春的作文15篇
- 生产原材料采购与库存管理表
- 应急执法考试试题及答案
- 音乐理论考试试题及答案
- 移动司机考试试题及答案
- 宜良农机考试试题及答案
- 六一典礼活动方案
- 六一古筝活动方案
- 第五单元《面积》(教学设计)-【大单元教学】三年级数学下册同步备课系列(人教版)
- 掼蛋考试试题及答案
- GA/T 2159-2024法庭科学资金数据清洗规程
- 企业风险管理-战略与绩效整合(中文版-雷泽佳译)
- 业务学习踝关节骨折
- 《医疗机构重大事故隐患判定清单(试行)》知识培训
- 浙江省杭州市2024年中考英语真题(含答案)
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 羽毛球社团教案(共17页)
- 下肢静脉曲张诊断及治疗进展PPT学习教案
- 装修管理规则-城市综合体---成都租户指引
评论
0/150
提交评论