



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泰国历与公历差异的处理问题:在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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源佳木斯市桦南县2025秋招笔试题库含答案
- 国家能源济南市平阴县2025秋招面试典型题目及答案
- 国家能源大庆市龙凤区2025秋招面试典型题目及答案
- 国家能源邯郸市复兴区2025秋招笔试数学运算题专练及答案
- 初一的读书心得
- 2025年十堰市城发集团及所属子公司公开招聘拟聘用人员考前自测高频考点模拟试题及答案详解一套
- 医生年度个人工作总结2篇
- 2025年北京中医药大学东方医院枣庄医院公开招聘备案制工作人员(59人)考前自测高频考点模拟试题完整参考答案详解
- 周口市中储粮2025秋招机电维修岗高频笔试题库含答案
- 2025年牡丹江绥芬河市博物馆公开招聘讲解员招聘4人考前自测高频考点模拟试题有答案详解
- 2025年吉安县公安局面向社会公开招聘留置看护男勤务辅警29人笔试备考试题及答案解析
- 内部审计管理系统建设需求
- 燃气输配课程设计说明书
- 如何进行模拟堂教学
- 手术操作分类代码国家临床版3.0
- 监控扩容施工方案
- 轴的计算与校核、传动轴计算(无密码可修改)
- 职称若干问题回答
- 《复旦大学介绍》
- 静电测试作业指导书
- 马云演讲中英文版
评论
0/150
提交评论