一种未见过的时间格式转换 从客户中得到一种时间格式,39037.4811041088 ,具客户大概说明为小数点前为从1900年到现在的天数,后面不了解,盼给出如何转换成timestamp格式,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** * 得到1900年1月1日后几天的日期, * @param count 天数 * @param dateFormat 日期格式:缺省为E yyyy年MM月dd日,常用格式yyyyMMdd HH:mm:ss * @return */ public static String getCurAfterDay(int count,String dateFormat){ String str=dateFormat==null?"E yyyy年MM月dd日":dateFormat; SimpleDateFormat format = new SimpleDateFormat(str); GregorianCalendar cal = new GregorianCalendar(); cal.add(Calendar.DATE,count); String curdate=format.format(cal.getTime()); return curdate; } 这个貌似是Excel里面存储日期的格式,后面小数代表时间,比如0.5 = 12:00, 0.75 = 18:0039037在Excel里面是今天2006/11/16,但是Excel的日期格式有几个致命问题,首先,和Javaer的想法不同,0代表1900/01/00而,1900/01/01则由1来表示,导致了[0, 1)之间的数据理论上全部非法,其次,不能表示1900年1月1日之前的数据,也就是负数是非法的,最后,你可以在Excel里面输入60,然后将格式改为日期,可以发现是1900年2月29日,但是这天显然不存在(xx00年要是400的整倍才是闰年,1900不是,2100也不是) 所以你要和客户确认是否就是Excel里面的格式,如果是,则上述问题怎么解决 谢谢各位,已经找到答案了,是以1989-12-30 12:00:00 做为0点,小数点前为相差天数,小数点后转换为24*0.4811041088*3600*1000转换成毫秒再换成Timstamp格式。 hibernate问题.真急。帮帮忙..没分了..不好意思。只有20 [Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未 Linux命令行执行不了 使用DIV做一个页面,并使页面正好充满浏览器? web传参问题 jsp如何实现查看在线用户? 在JSP页面中怎样得到所有联接到服务器的session? 急啊,关于string类的比较问题 无法取到值 500分求向sybase数据库中插入text类型数据的java代码! 这个for 如何用标签显示!!! jsp找不到我写的javabean?? 请高手指点 (在线等待)
* 得到1900年1月1日后几天的日期,
* @param count 天数
* @param dateFormat 日期格式:缺省为E yyyy年MM月dd日,常用格式yyyyMMdd HH:mm:ss
* @return
*/
public static String getCurAfterDay(int count,String dateFormat){
String str=dateFormat==null?"E yyyy年MM月dd日":dateFormat;
SimpleDateFormat format = new SimpleDateFormat(str);
GregorianCalendar cal = new GregorianCalendar();
cal.add(Calendar.DATE,count);
String curdate=format.format(cal.getTime());
return curdate;
}
首先,和Javaer的想法不同,0代表1900/01/00而,1900/01/01则由1来表示,导致了[0, 1)之间的数据理论上全部非法,
其次,不能表示1900年1月1日之前的数据,也就是负数是非法的,
最后,你可以在Excel里面输入60,然后将格式改为日期,可以发现是1900年2月29日,但是这天显然不存在(xx00年要是400的整倍才是闰年,1900不是,2100也不是)