java日期类型_Java 基础【12】 日期类型

news/2024/10/17 22:13:37/

java api中日期类型的继承关系

java.lang.Object

--java.util.Date

--java.sql.Date

--java.sql.Time

--java.sql.Timestamp

1. java.util.Date表示特定的瞬间,精确到了毫秒

两个构造函数(别的过期了的我就不说了) Date()   Date(long date) 主要方法》》

boolean

after(Date when)

测试此日期是否在指定日期之后。

boolean

before(Date when)

测试此日期是否在指定日期之前。

clone()

返回此对象的副本。

int

compareTo(Date anotherDate)

比较两个日期的顺序。

boolean

equals(Object obj)

比较两个日期的相等性。

long

getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。(最常用的方法了)

java.sql下面的包主要是用在jdbc下的使用

2. Timestamp()

此类型由 java.util.Date 和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date 组件中。小数秒(毫微秒)是独立存在的。传递 java.util.Date 类型的值时,Timestamp.equals(Object) 方法永远不会返回 true,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object)方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用基础java.util.Date 实现并因此在其计算中不包括毫微秒。

鉴于 Timestamp 类和上述 java.util.Date 类之间的不同,建议代码一般不要将 Timestamp 值视为java.util.Date 的实例。Timestamp 和 java.util.Date 之间的继承关系实际上指的是实现继承,而不是类型继承。

构造方法:

Timestamp(long time)

使用毫秒时间值构造 Timestamp 对象。

boolean

after(Timestamp ts)

指示此 Timestamp 对象是否晚于给定的 Timestamp 对象。

boolean

before(Timestamp ts)

指示此 Timestamp 对象是否早于给定的 Timestamp 对象。

int

compareTo(Date o)

将此 Timestamp 对象与给定的 Date(必须为 Timestamp 对象)相比较。

int

compareTo(Timestamp ts)

将此 Timestamp 对象与给定 Timestamp 对象相比较。

boolean

equals(Object ts)

测试此对象是否等于给定的 Timestamp 对象。

boolean

equals(Timestamp ts)

测试此 Timestamp 对象是否等于给定的 Timestamp 对象。

int

getNanos()(因为刚才说过了

我们不能通过java.util.Date来获得毫秒 ,timestamp就自己提供)

获取此 Timestamp 对象的 nanos 值。

long

getTime()

返回此 Timestamp 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

void

setNanos(int n)

将此 Timestamp 对象的 nanos 字段设置为给定值。

void

setTime(long time)

设置此 Timestamp 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。

toString()

使用 JDBC 时间戳转义格式编排时间戳。

valueOf(String s)

将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。

因为是继承了java.util.Date  所以也继承了里面的方法。。这个类的主要作用就是在数据库中插入时间,那有些人就会问为什么不用java.sql.Date,那么我们就来看下java.sql.Date>>

java.sql.Date》》

构造方法Date(long date)

使用给定毫秒时间值构造一个 Date 对象。

void

setTime(long date)

使用给定毫秒时间值设置现有 Date 对象。

toString()

格式化日期转义形式 yyyy-mm-dd 的日期。

static Date

valueOf(String s)

将 JDBC 日期转义形式的字符串转换成 Date 值。

可能有人发现了

在我们用这个java.sql.Date类型插入数据库的时候会发现丢失了时分秒,发生了自动截取,这是为什么呢?

原来java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用ResultSet的

getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。所以我们要精确的日期时应该使用Timestamp

3. Time()

Time(long time)

使用毫秒时间值构造 Time 对象。

void

setTime(long time)

使用毫秒时间值设置 Time 对象。

toString()

使用 JDBC 时间转义格式对时间进行格式化。

static Time

valueOf(String s)

将使用 JDBC 时间转义格式的字符串转换为 Time 值。

有了上面这些知识后,我们要进行转换就发现一目了然了>>>基本都是可以通过getTime()方法获得long类型的毫秒数

在通过构造函数把这毫秒数传过去就完成了转换。如:

java.util.Date d = new

java.util.Date(sqlDate.getTime());


http://www.ppmy.cn/news/248342.html

相关文章

未来计算机一种新兴的计算机类型,酷毙了!10款神奇的未来计算机

原标题:酷毙了!10款神奇的未来计算机 未来计算机的发展趋势怎样?你有想过未来的计算机会有什么新功能?下面奇艺网带来10款神奇的未来计算机,每一款都酷毙了,只想说来十台试试! 1)投影触摸笔记本…

Java即时编译器原理解析及实践

跟其他常见的编程语言不同,Java将编译过程分成了两个部分,这就对性能带来了一定的影响。而即时(Just In Time, JIT)编译器能够提高Java程序的运行速度。 本文会先解析一下即时编译器的原理,然后再分享一些在美团实践的…

计算机视觉(十六):目标检测概述

1 什么是目标检测 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置。 例子:确定某张给定图像中是否存在给定类别(比如人、车、自行车、狗和猫&…

Java已死?重庆java培训学校

一、什么情况下会发生栈内存溢出? 1、栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表、操作数栈、动态链接、方法出口等信息,局部变量表又包括基本数据类型和对象的引…

java api model_Java编译器API简介

今天给大家分享的是Java编译器API简介,文章部分内容摘自【优锐课】学习笔记。 Java编译器API Java编译器API是Java模块(称为java.compiler)的一部分。该模块包括语言模型和注释处理,以及编译器API。它定义了Java编程语言和编译器工具的类型和模型声明&am…

selenium(java)教程学习(附带全部代码)

java web自动化 javaseleniumtestngJenkins 想要使用Selenium实现web自动化测试,主要需要的东西。 1.需要安装jdk,配置jdk,(selenium3需要jdk1.8以上) 2. 安装eclipse(编写工具) 3. 安装webdrve…

台式计算机和便携式计算机是替代品吗,iPad能否替代笔记本电脑?这结果我一万个不服!...

近年来,随着平板电脑的不断发展,有一个长期存在的问题,平板(文中主要指iPad)是否可以替代传统笔记本电脑? 平板电脑和笔记本电脑如今可以做很多事情,最好的平板电脑甚至比一些笔记本电脑功能更强大,但它是一…

java 获取数组值_java获取数组值的数量

我已经有了以下代码 public class Qn3 { static BigDecimal[] accbal new BigDecimal[20]; private static Integer[] accnums new Integer[5]; public static void main(String[] args) { int count; accnums {1,2} //i cant add this line of code as well, what is wrong?…