`
hejianjie
  • 浏览: 146214 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

JAVA中的时间操作

    博客分类:
  • JAVA
阅读更多

java中的时间操作不外乎这四种情况:

1、获取当前时间

2、获取某个时间的某种格式

3、设置时间

4、时间的运算

好,下面就针对这四种情况,一个一个搞定。

 

一、获取当前时间

 

有两种方式可以获得,第一种,使用Date类。

j2SE的包里有两个Date类,一个是java.sql.Date,一个是java.util.Date

这里,要使用java.util.Date。获取当前时间的代码如下

Date date = new Date();

date.getTime();

还有一种方式,使用System.currentTimeMillis();

 

这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。

当前的时间得到了,但实际的应用中最后往往不是要用这个long型的东西,用户希望得到的往往是一个时间的字符串,比如“2006年6月18号”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,诸如此类等等。这就是下一个要解决的问题

 

二、获取某个时间的某种格式

 

获取时间的格式,需要用到一个专门用于时间格式的类java.text.SimpleDateFormat。

首先,定义一个SimpleDateFormat变量

SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);

这个构造函数的定义如下:

SimpleDateFormat(String pattern, Locale locale)

第一个参数pattern,我们后面再解释,这里我们使用一个"",第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了。

 

接下来我们使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:

sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");

String timeStr = sdf.format(new Date());

 

获取时间格式的函数是format,这个函数的参数是java.util.Date对象,这个没有什么花头。

要说明一下的是这个pattern,所谓的模式。这里,yyyy,MM,dd等,这就是模式。

我们可以在SimpleDateFormat的构造函数中指定模式,比如

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);

也可以获取时间格式的时候使用applyPattern函数临时指定,上面的例子就是这样。

什么字符代表什么,这是j2se约定好的,设置模式的时候,我们可以使用约定好的字符加上任何我们想要的字符串。

j2se对字符所代表的模式的约定列表如下:

 

 

Letter Date or Time Component  Presentation
G Era designator  Text
y Year  Year
M  Month in year  Month
w  Week in year  Number
W  Week in month  Number
D  Day in year Number
d  Day in month  Number
F  Day of week in month  Number
E  Day in week  Text
a  Am/pm marker  Text
H  Hour in day (0-23) Number
k  Hour in day (1-24) Number
K  Hour in am/pm (0-11)  Number
h   Hour in am/pm (1-12)  Number
m   Minute in hour  Number
s   Second in minute  Number
S   Millisecond  Number 
z   Time zone   General time zone
Z   Time zone  RFC 822 time zone

三,设置时间

现在设置时间,推荐 使用java.util.Calendar类来进行操作,因为java.util.Date类很多方法都过时了,
Calendar 类有很多重载的设置时间的方法
我们可以针对于某一项进行设置,也可以同时进行很多设置void set(int field, int value)
          将给定的日历字段设置为给定值。
 void set(int year, int month, int date)
          设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
 void set(int year, int month, int date, int hourOfDay, int minute)
          设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
 void set(int year, int month, int date, int hourOfDay, int minute, int second)
          设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

其中第一个就是给特定的字段设值,后面三个就是针对多个字段赋值

四,时间运算

时间的运算,无外乎就是加加减减,然后比较谁早谁晚而已,这些需求JAVA的API已经帮我们实现的很好了。一般比较时间的可以用如下的方法abstract  void add(int field, int amount)
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。
 boolean after(Object when)
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
 boolean before(Object when)
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。


第一个是给某个字段加上某个数量的时间,虽然这个方法名叫add ,我们要减也是调用它的,只不过我们传入的是负数。

其实JAVA对时间操作的支持还是挺丰富的。希望大家的日常的使用中有更多的发现。

分享到:
评论

相关推荐

    java中的时间操作

    ### Java中的时间操作 在Java开发中,时间处理是一项非常重要的功能,特别是在涉及到日期和时间相关的应用程序中。本文将深入探讨Java中关于时间操作的基本概念和技术,并重点介绍四种常见的应用场景:获取当前时间...

    操作系统-java版本时间片

    在Java中,虽然操作系统级别的时间片调度是由底层操作系统实现的,但Java虚拟机(JVM)对此有所配合,通过线程调度来模拟时间片的效果。Java的`Thread`类是进行多线程操作的基础,线程的调度策略包括:抢占式调度、...

    java操作时间java操作时间

    JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间

    java时间操作大集合

    在上述提供的代码段中,我们可以看到几个关于Java时间处理的关键知识点。这些方法主要用于获取当前时间,格式化时间字符串,以及将字符串转换为日期对象。 1. **日期对象创建与获取**:`java.util.Date` 类是Java中...

    java的时间操作.docx

    在上述代码中,`getNowDate()`和`getNowDateShort()`方法中虽然没有直接使用`Calendar`,但可以很容易地通过`Calendar.getInstance()`获取一个`Calendar`实例,然后进行进一步的日期时间操作。 Java 8引入了`java....

    Java时间操作

    ### Java时间操作详解 在Java中,时间操作是软件开发中的常见需求,涉及到日期和时间的解析、格式化、计算以及存储。Java提供了多种类库来处理这些需求,包括`java.util.Date`、`java.util.Calendar`、`java.time`...

    java日期时间操作函数代码

    总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂的业务逻辑计算中,都可能需要用到这些功能。通过学习和实践,你可以编写出更加高效和易维护的代码。

    Java8 日期时间操作

    详细介绍了Java8日期时间相关的api,列举了一些常用的方法,包含java.time、java.time.temporal、java.time.format包下的类和接口操作

    Java实现时间监听

    在Java编程中,时间监听是一项重要的任务,它允许程序对系统时间的变化进行反应或执行特定操作。这通常通过注册监听器来实现,监听器是一种回调机制,当特定事件发生时,它会被调用。在Java中,我们可以使用`java....

    java判断时间大小

    本文将详细介绍如何在Java中实现日期与时间的比较,包括使用`SimpleDateFormat`、`Date`、`Calendar`等类进行时间格式化和比较的方法,并通过示例代码展示具体实现过程。 #### 二、使用`SimpleDateFormat`和`Date`...

    java时间操作工具类 DateUtils

    java中常用的时间操作;如日期,时间戳,日历,字符串相互转化;时间差等常用日期功能。

    java操作时间工具类

    在提供的`TimeFormat.java`文件中,可能包含了对这些类的封装和扩展,以提供更加便捷的日期时间操作。例如,可能会有以下功能: 1. 格式化日期时间:提供一个静态方法,接收一个`Date`对象和格式模板字符串,返回...

    java获取时间大全

    - `java.util.Calendar`:这是`Date`的增强版,提供了更丰富的日期和时间操作功能,如增加、减少时间单位等。 - `java.time`包:Java 8引入的全新日期和时间API,包括`Year`, `Month`, `DayOfWeek`等枚举类型,...

    Java DateUtil.java日期时间操作类源代码.rar

    Java DateUtil.java日期时间操作类源代码,DateUtil类包含了标准的时间和日期格式,以及这些格式在字符串及日期之间转换的方法。比如日期格式转换成时间戳、得到格式化后的系统当前日期、转化日期格式"MM/dd/YY、MM....

    java-操作记录-对比操作前后不同

    在Java编程语言中,操作记录是一项重要的任务,它涉及到对程序执行过程中的各种操作进行跟踪、记录和分析,以便于调试、性能优化或者问题排查。本篇将基于提供的"java-操作记录-对比操作前后不同"的jar文件,探讨...

    操作日期的java包

    为了解决这个问题,社区开发了Joda-Time库,它提供了更为强大且易用的日期时间操作功能。"操作日期的java包"即指的是Joda-Time这个第三方库。 Joda-Time是Java领域广泛使用的日期时间处理库,它的设计目标是替代...

    转 Java校正电脑时间(java 时间同步)

    这篇博客“转 Java校正电脑时间(java 时间同步)”主要探讨了如何在Java中实现这一功能。 首先,Java中的日期和时间API包括`java.util.Date`、`java.util.Calendar`,以及从Java 8开始引入的更现代的`java.time`包。...

    java编写的操作系统

    在Java中模拟实现这些操作系统功能,需要深入理解Java的并发和多线程机制,以及Java虚拟机(JVM)的工作原理。开发者需要考虑线程安全、上下文切换开销以及如何在Java环境中高效地实现调度算法。 至于压缩包中的"OS...

Global site tag (gtag.js) - Google Analytics