Date now=new Date();
System.out.println(now.toString());//Fri Mar 12 14:05:48 CST 2010
Date snow=new Date(new Date().toString());
System.out.println(snow.toString());//Sat Mar 13 04:05:48 CST 2010
这两个结果相差了14个小时
分析原因:
public Date(String s)已过时。从 JDK 1.1 开始,就像通过 parse(java.lang.String) 方法解释一样。
public static long parse(String s)
先把字符串 s 解释为日期和时间的表示形式。如果尝试成功,则返回指示的时间,如果尝试失败,则抛出 IllegalArgumentException。
它接受许多语法;
特别是它识别 IETF 标准日期语法:"Fri, 12 Mar 2010 13:47:17 GMT";格林威治时间
如果使用时区偏移量:"Fri, 12 Mar 2010 13:47:17 GMT+08";北京时间
如果没有指定时区,则假定用本地时区。
而new Date().toString()的结果是"Fri Mar 12 13:47:24 CST 2010",那么在解析的时候,连续的字母序列被认为是单词,并按以下方法进行处理:
(1)忽略匹配 AM(上午)(忽略大小写)的单词(但如果小时尚未识别,或者小时小于 1 或大于 12,则分析失败)。
(2)匹配 PM(下午)(忽略大小写)的单词,添加 12 到小时(但如果小时尚未识别,或者小时小于 1 或大于 12,则分析失败)。
(3)忽略匹配 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 或 SATURDAY 的任何前缀(忽略大小写)的任何单词。例如,sat、Friday、TUE 和 Thurs 会被忽略。
(4)否则,匹配 JANUARY、FEBRUARY、MARCH、APRIL、MAY、JUNE、JULY、AUGUST、SEPTEMBER、OCTOBER、NOVEMBER 或 DECEMBER 的任何前缀(忽略大小写,并按这里给出的顺序考虑它们)的任何单词都被识别为指定月份,并被转换成一个数字(0 至 11)。例如,aug、Sept、april 和 NOV 被识别为月份。Ma 也是这样,它被识别为 MARCH,而不是 MAY。
(5)匹配 GMT、UT 或 UTC(忽略大小写)的任何单词都认为是指 UTC。
(6)匹配 EST、CST、MST 或 PST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的任何单词都被识别为在夏令时期间分别指相同的时区。
因此,在本例中因为匹配CST,则认为该字符串的时区为北美的时区,那么这个字符串的时间被当成了北美的现在时间,
然后new Date(s),把该字符串所表示的时间,按照本地时区,即北京时间表示出来,这样就相差了14个小时
System.out.println(now.toString());//Fri Mar 12 14:05:48 CST 2010
Date snow=new Date(new Date().toString());
System.out.println(snow.toString());//Sat Mar 13 04:05:48 CST 2010
这两个结果相差了14个小时
分析原因:
public Date(String s)已过时。从 JDK 1.1 开始,就像通过 parse(java.lang.String) 方法解释一样。
public static long parse(String s)
先把字符串 s 解释为日期和时间的表示形式。如果尝试成功,则返回指示的时间,如果尝试失败,则抛出 IllegalArgumentException。
它接受许多语法;
特别是它识别 IETF 标准日期语法:"Fri, 12 Mar 2010 13:47:17 GMT";格林威治时间
如果使用时区偏移量:"Fri, 12 Mar 2010 13:47:17 GMT+08";北京时间
如果没有指定时区,则假定用本地时区。
而new Date().toString()的结果是"Fri Mar 12 13:47:24 CST 2010",那么在解析的时候,连续的字母序列被认为是单词,并按以下方法进行处理:
(1)忽略匹配 AM(上午)(忽略大小写)的单词(但如果小时尚未识别,或者小时小于 1 或大于 12,则分析失败)。
(2)匹配 PM(下午)(忽略大小写)的单词,添加 12 到小时(但如果小时尚未识别,或者小时小于 1 或大于 12,则分析失败)。
(3)忽略匹配 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 或 SATURDAY 的任何前缀(忽略大小写)的任何单词。例如,sat、Friday、TUE 和 Thurs 会被忽略。
(4)否则,匹配 JANUARY、FEBRUARY、MARCH、APRIL、MAY、JUNE、JULY、AUGUST、SEPTEMBER、OCTOBER、NOVEMBER 或 DECEMBER 的任何前缀(忽略大小写,并按这里给出的顺序考虑它们)的任何单词都被识别为指定月份,并被转换成一个数字(0 至 11)。例如,aug、Sept、april 和 NOV 被识别为月份。Ma 也是这样,它被识别为 MARCH,而不是 MAY。
(5)匹配 GMT、UT 或 UTC(忽略大小写)的任何单词都认为是指 UTC。
(6)匹配 EST、CST、MST 或 PST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的任何单词都被识别为在夏令时期间分别指相同的时区。
因此,在本例中因为匹配CST,则认为该字符串的时区为北美的时区,那么这个字符串的时间被当成了北美的现在时间,
然后new Date(s),把该字符串所表示的时间,按照本地时区,即北京时间表示出来,这样就相差了14个小时
发表评论
-
String与StringBuffer的比较2
2009-04-12 23:16 882No. -
String与StringBuffer的比较2
2009-04-12 23:10 765No. -
String与StringBuffer的比较1
2009-04-12 23:09 968String类对象数组可直接调用java.util.Array ... -
JavaSE应用程序类集部分详解6
2009-04-12 22:42 675Properties类 一、Properti ... -
JavaSE应用程序类集部分详解5
2009-04-12 22:41 771Map接口 Map接口中 ... -
JavaSE应用程序类集部分详解4
2009-04-12 22:40 668Collection集合的输 ... -
JavaSE应用程序类集部分详解3
2009-04-12 22:39 715Set接口 一、Set<E>接口 ... -
JavaSE应用程序类集部分详解2
2009-04-12 22:37 539五、ArrayList<E>类 1、ArrayL ... -
JavaSE应用程序类集部分详解1
2009-04-12 22:35 799类集设置的目的 类集设置的目的是为处理对象的 ... -
JavaSE类集框架的完整结构2
2009-04-12 22:32 786三、Map<K,V>接口 Map<K,V& ... -
JavaSE类集框架的完整结构1
2009-04-12 22:31 969类集框架的完整结构 类集框架是用来处理动态的对象数组的。 ... -
JavaSE基础知识方法定义使用部分
2009-04-12 22:25 9531.2.6 Java中的方法 方法在程序中就是一段可重复调 ... -
JavaSE基础知识数组部分
2009-04-12 22:23 7561.2.5 Java中的数组 JAVA中的数组概念仍然用于 ... -
JavaSE基础知识循环结构部分
2009-04-12 22:22 7081.2.4.2 循环结构 1、循 ... -
JavaSE基础知识分支结构
2009-04-12 22:20 6191.2.4 Java流程控制语句结构 JAVA继续沿用用之 ... -
JavaSE基础知识关键字部分
2009-04-12 22:19 7301.2.3 Java关键字 几个关键字需 ... -
JavaSE基础知识部分
2009-04-12 22:17 7891.2 JavaSE基础知识部分 1.2.1 数据类型 ... -
JDK的安装及环境变量的设置
2009-04-12 22:10 852JDK的安装之前也需要先禁用防火墙; JDK的安装要注意其安 ... -
Java简介
2009-04-12 21:59 579Sun公司最初想把程序植入到各种设备中,来实现一些功能,但此项 ... -
JavaSE重点知识点总结
2009-04-12 21:58 2191第一部分:Java基础程序设计 基础部分包括数据类型、运算符 ...
相关推荐
软件测试NextDate函数测试用例 System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //2008年04月24 15时56分48秒 System.DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒"); //星期二, 四月 24 ...
java内常用包,date类,toString的使用方法
selcmd.CommandText = "select * from emp where HIREDATE < to_date('1987-11-26','yyyy-mm-dd') "; OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = selcmd; DataSet ds = new ...
Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库 5.直接用ToString方法转换日期显示格式: DateTime.Now.ToString(...
//获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 ...DateTime.Now.Date.ToString(); // 2008-9-4 0:00:00 还有更多方法,请下载学习
Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart 取日期的部分信息 Date.prototype.MaxDayOfDate 取日期所在月的最大天数 Date.prototype.WeekNumOfYear 判断...
Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart 取日期的部分信息 Date.prototype.MaxDayOfDate 取日期所在月的最大天数 Date.prototype.WeekNumOfYear 判断...
本JSON是基于JAVA7编写,对比阿里的JSON三次测试结果如下: 10万次序列化,1万次反序列化,毫秒。 阿里序列化时间 1229 1133 1179 阿里反序列化时间 478 523 466 HZS序列化时间 1089 998 1010 HZS反序列化时间 606 ...
本JSON是基于JAVA8编写,对比阿里的JSON三次测试结果如下: 10万次序列化,1万次反序列化,毫秒。 阿里序列化时间 1122 1054 1115 阿里反序列化时间 409 423 412 HZS序列化时间 884 864 880 HZS反序列化时间 392 ...
String time = sdf.format(new Date()); db = myHelper.getWritableDatabase(); values.put("title", title); if (content != null) { values.put("content", content); } values.put("time", time);...
var t = new Date().toString(); //t = "Thu Oct 31 2019 11:36:57 GMT+0800 (中国标准时间)" var t1 = new Date(); var data_arry =[]; var that = new Date(); data_arry.push(that.constructor()); // Thu ...
对于int,double等的tostring: C 货币 2.5.ToString(“C”) ¥2.50 D 十进制数 25.ToString(“D5”) 00025 E 科学型 25000....
'/' + (date.getMonth()+1).toString() + '/' + date.getDate(); } ]]> paddingTop="10" paddingLeft="10" paddingRight="10"> text="Select a date in the DateField control. Select it again to ...
planStart = new Long(planStartDate.getTime()).toString(); } //处理完成时间 Date planStopDate = t.getFinish(); String planFinish = "-1"; if (planStopDate != null) { ...
代码如下:from j in system.jhzdwhere j.dwbm.ToString().Trim() == branchcode.ToString().Trim()&& Convert.ToDateTime(j.yearmonth.ToString().Trim()).CompareTo(Convert.ToDateTime(timeFrom)) >= 0&& Convert...
map.put("date", new Date()); map.put("现金", 20.365); System.out.println(map.keySet().toString()); System.out.println(map.values().toArray()[0]); System.out.println(Calendar.getInstance()); ...
string year = date.Year.ToString(); string month = date.Month.ToString(); string day = date.Day.ToString();
} else if (object.getClass().equals(Date.class) || object.getClass().equals(Timestamp.class)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "to_date('" + sdf...
List lstTrainNoSeatExist = this.sellTicketService.queryNoSeat(intervalBit.longValue(), Integer.parseInt(obj[0].toString()), date); if(lstTrainNoSeatExist.size() > 40){ jsObj.put("无座",...
var d = new Date ( ) ; var colon = ":" ; var space = " " ; // month-year.js var year = d . getFullYear ( ) . toString ( ) ; var m = [ "January" , "February" , "March" , "April" , "May" , "June" , ...