`
lvinie
  • 浏览: 113992 次
  • 性别: 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)
          设置日历字段 YEARMONTHDAY_OF_MONTH 的值。
 void set (int year, int month, int date, int hourOfDay, int minute)
          设置日历字段 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE 的值。
 void set (int year, int month, int date, int hourOfDay, int minute, int second)
          设置字段 YEARMONTHDAY_OF_MONTHHOURMINUTESECOND 的值。

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

四,时间运算

时间的运算,无外乎就是加加减减,然后比较谁早谁晚而已,这些需求JAVA的API已经帮我们实现的很好了。一般比较时间的可以用如下的方法

abstract  void add (int field, int amount)
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。
 boolean after (Object  when)
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
 boolean before (Object  when)
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。


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

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

 

转自:http://www.blogjava.net/hadeslee/archive/2007/09/11/144386.html

分享到:
评论

相关推荐

    JAVA中的时间操作

    在Java编程语言中,时间操作是一项关键功能,用于处理日期、时间和时区相关的任务。Java提供了多种类库来处理时间,这些类库随着时间的推移不断进化,从早期的`java.util.Date`和`java.util.Calendar`到更现代的`...

    java中的时间操作

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

    java将数字转换为时间格式

    在Java编程语言中,经常需要处理日期与时间相关的数据,例如将数字(通常是表示时间戳或特定格式的字符串)转换为更易读的时间格式。这种转换不仅可以帮助我们更好地理解和操作数据,还能增强应用程序的用户友好性。...

    java日期时间转换大全

    在Java编程中,处理日期和时间是常见的需求,尤其是在涉及到数据库操作、文件命名、日志记录等场景时。本文将详细解析如何在Java中进行日期和时间的转换,涵盖从字符串到日期对象的转换,以及反向操作。 #### 一、...

    操作系统-java版本时间片

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

    Java时间转换

    Java时间转换的应用非常广泛,例如在Web应用程序中,需要将日期和时间转换为字符串,以便在Web页面中显示。又例如在数据库应用程序中,需要将日期和时间转换为字符串,以便存储在数据库中。 Java时间转换的优点是...

    java时间转换大全

    ### Java时间转换大全 在Java开发中,时间与日期的操作是一项非常常见的需求。尤其是在处理数据库交互、日志记录以及各种业务逻辑中,...在实际开发中,根据具体的应用场景选择合适的方法来进行时间操作是十分重要的。

    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 语音合成PCM转MP3

    在"java 语音合成PCM转MP3"这个主题中,我们需要关注以下几个关键知识点: 1. **Java TTS库**:Java提供了内置的Java Speech API (JSAPI),其中包含Text-to-Speech引擎,如FreeTTS和MaryTTS,可以将文本转化为PCM...

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

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

    java日期时间操作函数代码

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

    Java时间操作

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

    java 时间转换(转载)

    通过阅读和理解这段代码,你可以更深入地了解Java中的时间转换操作。不过,由于实际代码没有给出,我们只能基于一般情况来讨论这些概念。在实际开发中,确保正确地处理日期和时间,避免出现时区问题,以及有效地进行...

    smali2java——直接将smali转换成java

    **标题与描述解析** 标题"smali2java——直接将smali转换成java"揭示了本文的核心主题,即一个名为"smali2...尽管在压缩包中的"Smali2Java"可能是工具的可执行文件,实际使用时还需要结合相关文档或说明来正确操作。

    java判断时间大小

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

    Java使用FFmpeg实现mp4转m3u8

    在Java程序中,你需要监听`process`对象的输入流和错误流,以便获取转换过程中的输出信息和可能出现的错误。 5. 前端页面集成: 转换完成后,前端页面可以通过HTML5的`<video>`标签和`source`标签来播放`M3U8`流...

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

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

Global site tag (gtag.js) - Google Analytics