java中date只是用来表示日期,一直认为和时区没有关系;实际使用中也没有遇到过问题,只要你不要getTime()对其进行设么操作。最近遇到想要把一个date归一化到天(天以下的单位全部设置为零,比如2012-1-1 8:32:22->2012-1-1 00:00:00),傻办法就是直接使用calendar.set(...),但是感觉很累,没有技术含量,于是深究了下timemillions.
好了, 首先看文档说话,Date.getTime() 的javadoc说“Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
represented by this Date object.” 注意GMT是亮点,一旦出现时区事情总是变得有点复杂。
看了Date类代码,确认这货和calendar有关,那肯定和时区有关。。
打印 new Date(70, 0, 1).getTime() //1970-1-1,打印出-28800000,确认是8个小时毫秒数(亦即东八区,中国的时区),好了基本知道该怎么办了。
new Date(((new Date().getTime() + TimeZone.getDefault().getRawOffset()) / (1000 * 60 * 60 * 24)*(1000 * 60 * 60 * 24))
- TimeZone.getDefault().getRawOffset())
搞定,这就是我们需要的归一化后的日期(到1天),也就是当前天零点;同理,你也可以在此基础上归一化n月、n年。
注:上面可能会有夏令时的问题,中国么可以暂时忽略
分享到:
相关推荐
可以使用 `java.util.Date` 类的 `toLocaleString()` 方法来输出当前日期,结果将根据本地时区进行格式化。 ```java <%@ page import="java.util.Date"%> <% Date myDate = new Date(); out.println(myDate....
10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类...
总结来说,`Date`和`Calendar`是Java中处理日期和时间的基础,它们提供了创建、修改和格式化日期的能力。虽然Java 8引入了更好的日期时间API,但了解和掌握这两个类的用法对于维护和理解老代码仍然是必不可少的。
`GetTimer.java` 文件很可能是包含上述代码的Java源文件,而`Java.jpg` 可能是一个辅助图片,用于展示代码的运行结果或者提供关于`Date`类的可视化解释。 总的来说,`java.util.Date` 类在获取和表示当前系统时间上...
java_sql_Date与java_util_Date转换
Java Date操作大全 例举了所有java 日期操作
根据提供的文件信息,我们可以总结出以下关于Java中Date类及其时间格式化的相关知识点: ### Java Date 类概述 在Java中,`java.util.Date`类表示特定的瞬间,精确到毫秒。该类提供了多种构造方法来创建日期实例,...
Java 中 Date 类型转换为 MySQL 的 DateTime 类型 Java 中的 Date 类型和 MySQL 的 DateTime 类型是两个不同的日期时间类型,都是用于表示日期和时间的信息,但它们之间存在一定的区别。Java 中的 Date 类型是使用...
使用 Java 在 Oracle 中插入 Date 类型 在 Oracle 中,Date 类型是非常重要的一种数据类型,用于存储日期和时间信息。在 Java 中,我们可以使用 JDBC 连接 Oracle 数据库,并插入 Date 类型的数据。在这里,我们将...
java Date操作工具类,对日期的各种基本的操作
【Java 操作 Date 对象详解】 在 Java 中,处理日期和时间主要依赖于 `java.util.Date` 和 `java.text.DateFormat` 这两个核心类。在本文中,我们将深入探讨如何使用这些类来获取、格式化和操作日期。 1. **获取...
### Java中DATE与时间戳互化的知识点解析 #### 一、时间戳的基本概念 时间戳在计算机领域中通常指的是从某一固定时刻起始所经过的毫秒数,这个固定时刻通常指的是1970年1月1日00:00:00 UTC。在Java中,时间戳主要...
本文将详细介绍如何在 Java 中为日期增加一天,主要涉及三种方法:使用 `plusDays()` 方法,`Calendar` 类,以及通过毫秒计算。这些方法适用于不同的 Java 版本,其中 `plusDays()` 方法是 Java 8 引入的新特性,...
然而,为了更好地理解和解答题目中的需求,我们可以围绕“Date的Java源代码”这一主题来展开相关的知识点。 ### 1. Java Date 类的基本概念 在Java中,`java.util.Date`类用来表示特定的时间点,即毫秒值距离1970...
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。
1. **规范化问题**:当使用`java.sql.Date`时需要注意,它的日期部分是规范化的,即只包含日期而没有时间。这意味着任何传递给它的非规范化的时间信息(如小时、分钟等)将会被清除。 2. **日期格式的匹配**:在...
在Java编程语言中,`java.util.Date` 类...总的来说,Java中的日期处理涉及`Date`类和`SimpleDateFormat`类,它们提供了解析、格式化和操作日期的能力。通过理解这些概念,开发者可以有效地在程序中处理日期和时间。
本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,从而实现更加标准化的数据交换。 #### 一、问题背景与目标 在Java中,`java.util.Date`类用于表示具体的时间点,它包含了毫秒级别...
Java 中的 Date、String 和 Timestamp 之间的转换问题 Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取...
在Java编程语言中,`Calendar`和`Date`类是处理日期和时间的核心组件。这两个类在处理日期、时间计算以及格式化等任务时扮演着关键角色。理解并熟练运用它们,对于提升Java开发能力至关重要。 `Date`类是Java早期...