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 906No. -
String与StringBuffer的比较2
2009-04-12 23:10 787No. -
String与StringBuffer的比较1
2009-04-12 23:09 1004String类对象数组可直接调用java.util.Array ... -
JavaSE应用程序类集部分详解6
2009-04-12 22:42 703Properties类 一、Properti ... -
JavaSE应用程序类集部分详解5
2009-04-12 22:41 795Map接口 Map接口中 ... -
JavaSE应用程序类集部分详解4
2009-04-12 22:40 687Collection集合的输 ... -
JavaSE应用程序类集部分详解3
2009-04-12 22:39 742Set接口 一、Set<E>接口 ... -
JavaSE应用程序类集部分详解2
2009-04-12 22:37 560五、ArrayList<E>类 1、ArrayL ... -
JavaSE应用程序类集部分详解1
2009-04-12 22:35 824类集设置的目的 类集设置的目的是为处理对象的 ... -
JavaSE类集框架的完整结构2
2009-04-12 22:32 814三、Map<K,V>接口 Map<K,V& ... -
JavaSE类集框架的完整结构1
2009-04-12 22:31 991类集框架的完整结构 类集框架是用来处理动态的对象数组的。 ... -
JavaSE基础知识方法定义使用部分
2009-04-12 22:25 9851.2.6 Java中的方法 方法在程序中就是一段可重复调 ... -
JavaSE基础知识数组部分
2009-04-12 22:23 7791.2.5 Java中的数组 JAVA中的数组概念仍然用于 ... -
JavaSE基础知识循环结构部分
2009-04-12 22:22 7301.2.4.2 循环结构 1、循 ... -
JavaSE基础知识分支结构
2009-04-12 22:20 6491.2.4 Java流程控制语句结构 JAVA继续沿用用之 ... -
JavaSE基础知识关键字部分
2009-04-12 22:19 7491.2.3 Java关键字 几个关键字需 ... -
JavaSE基础知识部分
2009-04-12 22:17 8161.2 JavaSE基础知识部分 1.2.1 数据类型 ... -
JDK的安装及环境变量的设置
2009-04-12 22:10 878JDK的安装之前也需要先禁用防火墙; JDK的安装要注意其安 ... -
Java简介
2009-04-12 21:59 601Sun公司最初想把程序植入到各种设备中,来实现一些功能,但此项 ... -
JavaSE重点知识点总结
2009-04-12 21:58 2210第一部分:Java基础程序设计 基础部分包括数据类型、运算符 ...
相关推荐
String dateStr = sqlDate.toString(); java.util.Date utilDate = dateFormat.parse(dateStr); // 注意:这里需要将日期字符串转换为符合 "yyyy-MM-dd" 格式的形式 ``` 3. **直接转换** 由于 `java.sql....
软件测试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 ...
"0" + (newDate.getMonth() + 1).toString() : (newDate.getMonth() + 1).toString(); var dayString = newDate.getDate().toString().length == 1 ? "0" + newDate.getDate().toString() : newDate.getDate()....
Date now = new Date(); System.out.println(now.toString()); Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime().toString()); ``` 2. 修改日期和时间: ```java calendar.set...
在JavaScript中,Object.prototype.toString是一个基础的方法,它用于返回一个表示对象类型的字符串。了解这个方法的工作原理是很有帮助的,特别是在我们需要检测一个变量的类型时。本文将探讨Object.prototype....
* dt.Date.ToString(),将日期时间转换为日期,例如 DateTime.Now.Date.ToString() 将输出当前日期。 * dt.DayOfWeek.ToString(),将日期时间转换为星期几,例如 DateTime.Now.DayOfWeek.ToString() 将输出当前星期...
Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库 5.直接用ToString方法转换日期显示格式: DateTime.Now.ToString(...
console.log(date.toString()); // 输出:Wed Mar 15 2023 14:30:00 GMT+0800 (China Standard Time) ``` 然而,这种方法并不能满足我们的需求,因为它不能指定日期的格式。为了解决这个问题,我们可以使用 ...
此外,还可以使用 Date 和 Time 的各个部分的 ToString() 方法来输出相应的字符串,例如 dt.Year.ToString() 输出 2005,dt.DayOfWeek.ToString() 输出 Saturday 等。 C# 中的字符串格式化提供了多种灵活的格式化...
2. **`Date.UTC()`**:返回指定日期的UTC毫秒值。 ```javascript let utcValue = Date.UTC(2023, 11, 31); console.log(utcValue); ``` #### 结论 以上就是JavaScript中`Date`对象的主要操作方法。通过这些...
java内常用包,date类,toString的使用方法
- **`dt.Date.ToString()`**:获取当前日期,不包括时间部分。 示例: ```csharp string dateOnly = DateTime.Now.Date.ToString(); // 输出类似于 "2005-11-5 0:00:00" ``` - **`dt.DayOfWeek.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 ...
java.util.Date utilDate = dateFormat.parse(sqlDate.toString()); // sqlDate转utilDate java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); // utilDate转sqlDate ``` 3. **直接转换** 由于`...
String dateToString = date.toString(); // 提取年份 ret.append(dateToString.substring(24, 24 + 4)); // 获取 "2005" // 提取月份 String sMonth = dateToString.substring(4, 4 + 3); for (int i = 0; ...
Date d = new Date(); ``` 这将创建一个表示当前日期和时间的新`Date`对象。 `Date`类可以与`Calendar`类一起使用,`Calendar`是更高级的日历工具,允许对日期和时间进行更复杂的操作。在上述示例中,`...
js 中 toString 方法的 3 个作用 js 中的 toString 方法是 Object.prototype 上的一个方法,每个对象都可以调用该方法。该方法的主要作用是将对象转换为字符串形式,以便于对象的表示和处理。在 js 中,toString ...
2. `dt.Date.ToString()`:提取日期部分,不包含时间,如"2005-11-5 0:00:00"。 3. `dt.DayOfWeek.ToString()`:返回星期几,如"Saturday"。 4. `dt.DayOfYear.ToString()`:返回一年中的第几天,如"309"。 5. `dt....
//获取日期+时间 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 还有更多方法,请下载学习