「java时间几类」java中时间用什么类型

博主:adminadmin 2023-01-08 11:42:08 1008

本篇文章给大家谈谈java时间几类,以及java中时间用什么类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中的时间类型有几种

java总体有2大类。1、基本数据类型(8种)!2、引用数据类型基本数据类型种不包括有时间类型。所以没有

java时间类的问题

void

set(int year,

int month, int date, int hourOfDay, int minute)

设置日历字段

YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY

和 MINUTE 的值。

Calendar 类是一个抽象类,它为特定瞬间与一组诸如

YEAR、MONTH、DAY_OF_MONTH、HOUR

等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。与其他语言环境敏感类一样,Calendar 提供了一个类方法

getInstance,以获得此类型的一个通用的对象。Calendar 的

getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

Calendar rightNow = Calendar.getInstance();Calendar

对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语-传统日历。Calendar

定义了某些日历字段返回值的范围,以及这些值的含义。例如,对于所有日历,日历系统第一个月的值是 MONTH ==

JANUARY。其他值是由具体子类(例如 ERA)定义的。有关此内容的细节,请参阅每个字段的文档和子类文档。获得并设置日历字段值

可以通过调用 set 方法来设置日历字段值。在需要计算时间值(距历元所经过的毫秒)或日历字段值之前,不会解释

Calendar 中的所有字段值设置。调用

get、getTimeInMillis、getTime、add

和 roll 涉及此类计算。宽松性

Calendar 有两种解释日历字段的模式,即 lenient 和

non-lenient。当 Calendar 处于 lenient

模式时,它可接受比它所生成的日历字段范围更大范围内的值。当 Calendar 重新计算日历字段值,以便由

get() 返回这些值时,所有日历字段都被标准化。例如,lenient 模式下的

GregorianCalendar 将 MONTH ==

JANUARY、DAY_OF_MONTH == 32 解释为 February 1。当 Calendar 处于 non-lenient

模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。例如,GregorianCalendar 总是在 1

与月份的长度之间生成 DAY_OF_MONTH 值。如果已经设置了任何超出范围的字段值,那么在计算时间或日历字段值时,处于

non-lenient 模式下的 GregorianCalendar 会抛出一个异常。第一个星期

Calendar 使用两个参数定义了特定于语言环境的 7

天制星期:星期的第一天和第一个星期中的最小一天(从 1 到 7)。这些数字取自构造 Calendar

时的语言环境资源数据。还可以通过为其设置值的方法来显式地指定它们。

在设置或获得 WEEK_OF_MONTH 或 WEEK_OF_YEAR

字段时,Calendar 必须确定一个月或一年的第一个星期,以此作为参考点。一个月或一年的第一个星期被确定为开始于

getFirstDayOfWeek() 的最早七天,它最少包含那一个月或一年的

getMinimalDaysInFirstWeek() 天数。第一个星期之前的各星期编号为 ...、-1、0;之后的星期编号为

2、3、...。注意,get() 返回的标准化编号方式可能有所不同。例如,特定 Calendar

子类可能将某一年第 1 个星期之前的那个星期指定为前一年的第 n 个星期。日历字段解析

在计算日历字段中的日期和时间时,可能没有足够的信息用于计算(例如只有年和月,但没有日),或者可能有不一致的信息( 例如

"Tuesday, July 15, 1996"(格林威治时间)——实际上,1996 年 7 月 15 日是星期一

)。Calendar 将解析日历字段值,以便用以下方式确定日期和时间。

如果日历字段值中存在任何冲突,则 Calendar

将为最近设置的日历字段提供优先权。以下是日历字段的默认组合。将使用由最近设置的单个字段所确定的最近组合。对于日期字段:

YEAR + MONTH + DAY_OF_MONTH

YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK

YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK

YEAR + DAY_OF_YEAR

YEAR + DAY_OF_WEEK + WEEK_OF_YEAR

对于时间字段:

HOUR_OF_DAY

AM_PM + HOUR如果在选定的字段组合中,还有尚未设置值的任一日历字段,那么 Calendar

将使用其默认值。每个字段的默认值可能依据具体的日历系统而有所不同。例如,在 GregorianCalendar

中,字段的默认值与历元起始部分的字段值相同:即 YEAR = 1970、MONTH =

JANUARY、DAY_OF_MONTH = 1,等等。注: 对于某些特别时间的解释可能会有某些歧义,可以用下列方式解决:

23:59 是一天中的最后一分钟,而 00:00 是下一天的第一分钟。因此,1999 年 12 月 31 日的 23:59 2000 年 1

月 1 日的 00:00。

尽管从历史上看不够精确,但午夜也属于 "am",,中午属于 "pm",所以在同一天,12:00 am ( 午夜 ) 12:01

am,12:00 pm ( 中午 ) 12:01 pm。

日期或时间格式字符串不是日历定义的一部分,因为在运行时,用户必须能够修改或重写它们。可以使用 DateFormat 格式化日期。字段操作

可以使用三种方法更改日历字段:set()、add() 和

roll()。

set(f, value) 将日历字段 f 更改为

value。此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段

f 是立即更改的,但是直到下次调用

get()、getTime()、getTimeInMillis()、add()

或 roll() 时才会重新计算日历的时间值(以毫秒为单位)。因此,多次调用 set()

不会触发多次不必要的计算。使用 set()

更改日历字段的结果是,其他日历字段也可能发生更改,这取决于日历字段、日历字段值和日历系统。此外,在重新计算日历字段之后,get(f)

没必要通过调用 set 方法返回 value 集合。具体细节是通过具体的日历类确定的。

示例:假定 GregorianCalendar 最初被设置为 1999 年 8 月 31 日。调用

set(Calendar.MONTH, Calendar.SEPTEMBER) 将该日期设置为 1999 年 9 月 31

日。如果随后调用 getTime(),那么这是解析 1999 年 10 月 1 日的一个暂时内部表示。但是,在调用

getTime() 之前调用 set(Calendar.DAY_OF_MONTH, 30) 会将该日期设置为

1999 年 9 月 30 日,因为在调用 set() 之后没有发生重新计算。

add(f, delta) 将 delta 添加到

f 字段中。这等同于调用 set(f, get(f) + delta),但要带以下两个调整:

Add 规则 1。调用后 f 字段的值减去调用前 f 字段的值等于

delta,以字段 f

中发生的任何溢出为模。溢出发生在字段值超出其范围时,结果,下一个更大的字段会递增或递减,并将字段值调整回其范围内。

Add 规则 2。如果期望某一个更小的字段是不变的,但让它等于以前的值是不可能的,因为在字段

f

发生更改之后,或者在出现其他约束之后,比如时区偏移量发生更改,它的最大值和最小值也在发生更改,然后它的值被调整为尽量接近于所期望的值。更小的字段表示一个更小的时间单元。HOUR

是一个比 DAY_OF_MONTH

小的字段。对于不期望是不变字段的更小字段,无需进行任何调整。日历系统会确定期望不变的那些字段。

此外,与 set() 不同,add() 强迫日历系统立即重新计算日历的毫秒数和所有字段。

示例:假定 GregorianCalendar 最初被设置为 1999 年 8 月 31 日。调用

add(Calendar.MONTH, 13) 将日历设置为 2000 年 9 月 30 日。Add 规则

1 将 MONTH 字段设置为 September,因为向 August 添加 13 个月得出的就是下一年的

September。因为在 GregorianCalendar 中,DAY_OF_MONTH 不可能是 9

月 31 日,所以 add 规则 2 将 DAY_OF_MONTH 设置为

30,即最可能的值。尽管它是一个更小的字段,但不能根据规则 2 调整 DAY_OF_WEEK,因为在

GregorianCalendar 中的月份发生变化时,该值也需要发生变化。

roll(f, delta) 将 delta 添加到

f 字段中,但不更改更大的字段。这等同于调用 add(f, delta),但要带以下调整:

Roll

规则。在完成调用后,更大的字段无变化。更大的字段表示一个更大的时间单元。DAY_OF_MONTH 是一个比

HOUR 大的字段。

示例:请参阅 GregorianCalendar.roll(int,

int)。使用模型。为了帮助理解 add() 和 roll()

的行为,假定有一个用户界面组件,它带有用于月、日、年和底层 GregorianCalendar

的递增或递减按钮。如果从界面上读取的日期为 1999 年 1 月 31 日,并且用户按下月份的递增按钮,那么应该得到什么?如果底层实现使用

set(),那么可以将该日期读为 1999 年 3 月 3 日。更好的结果是 1999 年 2 月 28

日。此外,如果用户再次按下月份的递增按钮,那么该日期应该读为 1999 年 3 月 31 日,而不是 1999 年 3 月 28 日。通过保存原始日期并使用

add() 或 roll(),根据是否会影响更大的字段,用户界面可以像大多数用户所期望的那样运行。

至于如何使用,可以参考JAVA API

java中的时间类型

public void compare(String str1,String str2){

try {

SimpleDateFormat s = new SimpleDateFormat("HH:mm:ss");

Date date1 = s.parse(str1);

Date date2 = s.parse(str2);

if(date1.getTime()=date2.getTime()){

System.out.println("str1=str2");

}else

System.out.println("str1str2");

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

java里表示时间的类型是什么?

java.util.Date,和java.util.Calendar 是 java 的主要的时间类型

Java.util.Calendar类是java.util.Date类的一个更加深入,更加全面的替代。Java.util.Calendar类支持java.util.Date的所有功能,此外,Calendar还引入了多语言,多区域的特性,可以根据需要获取不同区域,不同时区的时间,Calendar还增加了比Date更加方便和快捷的许多操作,如获取一年当中的第几个星期,各个月的天数等便捷的方法。

Java.util.Calendar区别与java.util.Date的几个地方也需要注意一下:首先,Calendar增加了毫秒的时间段,通过它可以获取时间点的毫秒值,而java.util.Date只是精确到秒。其次,Calendar过去年的时候是当前年份比如:2010,而Date获取年份的时获取到的是当前年份-1900的一个值(2010-1900=110,因此,你调用getYear后过去的值就是110)。最后Calendar是一个抽象类,之所以能够实例化,是因为此处的Calendar充当了一个类似于工厂的作用,在getInstance方法中实例化了Calendar子类GregorianCalendar,并把它返回给客户使用。

此外,还有 java.sql.Date, java.sql.Time, java.sql.Timestamp

在数据库中定义的时间类型在JAVA代码中用什么类型?

数据库定义的时间类型使用java代码中的Date类型,数据库存储的时间类型有可能是很多种的,在java代码中,可以使用时间转换类simpledateformat类来进行转换,实例如下:

ListMyDate list=dao.getDate();//从数据库拿到的时间数据

  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义一个时间类型

  for (int j = 0; j  list.size(); j++) {

   MyDate da=list.get(j);

   System.out.println(sdf.format(da.getDate()));//打印出转换后的时间

  }

关于java时间几类和java中时间用什么类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。