日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java时间设置_JAVA中的时间操作

發(fā)布時(shí)間:2024/1/1 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java时间设置_JAVA中的时间操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java中的時(shí)間操作不外乎這四種情況:

1、獲取當(dāng)前時(shí)間

2、獲取某個(gè)時(shí)間的某種格式

3、設(shè)置時(shí)間

4、時(shí)間的運(yùn)算

好,下面就針對這四種情況,一個(gè)一個(gè)搞定。

一、獲取當(dāng)前時(shí)間

有兩種方式可以獲得,第一種,使用Date類。

j2SE的包里有兩個(gè)Date類,一個(gè)是java.sql.Date,一個(gè)是java.util.Date

這里,要使用java.util.Date。獲取當(dāng)前時(shí)間的代碼如下

Date date = new Date();

date.getTime();

還有一種方式,使用System.currentTimeMillis();

這兩種方式獲得的結(jié)果是一樣的,都是得到一個(gè)當(dāng)前的時(shí)間的long型的時(shí)間的毫秒值,這個(gè)值實(shí)際上是當(dāng)前時(shí)間值與1970年一月一號零時(shí)零分零秒相差的毫秒數(shù)。

當(dāng)前的時(shí)間得到了,但實(shí)際的應(yīng)用中最后往往不是要用這個(gè)long型的東西,用戶希望得到的往往是一個(gè)時(shí)間的字符串,比如“2006年6月18號”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,諸如此類等等。這就是下一個(gè)要解決的問題

二、獲取某個(gè)時(shí)間的某種格式

獲取時(shí)間的格式,需要用到一個(gè)專門用于時(shí)間格式的類java.text.SimpleDateFormat。

首先,定義一個(gè)SimpleDateFormat變量

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

這個(gè)構(gòu)造函數(shù)的定義如下:

SimpleDateFormat(String?pattern, Locale?locale)

第一個(gè)參數(shù)pattern,我們后面再解釋,這里我們使用一個(gè)"",第二個(gè)參數(shù),是用來設(shè)置時(shí)區(qū)的,這里用到了java.util.Locale這個(gè)類,這個(gè)類了面定義了很多靜態(tài)變量,直接拿過來用就OK,我們把時(shí)區(qū)設(shè)置為Locale.SIMPLIFIED_CHINESE,只看名字,這個(gè)靜態(tài)變量的意義已經(jīng)很清楚了。

接下來我們使用這個(gè)SimpleDateFormat把當(dāng)前時(shí)間格式化為一個(gè)如下格式的時(shí)間字符串“XXXX年XX月XX日_XX時(shí)XX分XX秒”,代碼:

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

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

獲取時(shí)間格式的函數(shù)是format,這個(gè)函數(shù)的參數(shù)是java.util.Date對象,這個(gè)沒有什么花頭。

要說明一下的是這個(gè)pattern,所謂的模式。這里,yyyy,MM,dd等,這就是模式。

我們可以在SimpleDateFormat的構(gòu)造函數(shù)中指定模式,比如

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

也可以獲取時(shí)間格式的時(shí)候使用applyPattern函數(shù)臨時(shí)指定,上面的例子就是這樣。

什么字符代表什么,這是j2se約定好的,設(shè)置模式的時(shí)候,我們可以使用約定好的字符加上任何我們想要的字符串。

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

三,設(shè)置時(shí)間

Calendar.getInstance().getTime()即可獲取一個(gè)Date對象

Calendar.getInstance().add(時(shí)間的一個(gè)部分,正數(shù)代表加,負(fù)數(shù)代表減)

現(xiàn)在設(shè)置時(shí)間,推薦 使用java.util.Calendar類來進(jìn)行操作,因?yàn)閖ava.util.Date類很多方法都過時(shí)了,

Calendar 類有很多重載的設(shè)置時(shí)間的方法

我們可以針對于某一項(xiàng)進(jìn)行設(shè)置,也可以同時(shí)進(jìn)行很多設(shè)置

void

將給定的日歷字段設(shè)置為給定值。

void

設(shè)置日歷字段?YEAR、MONTH?和?DAY_OF_MONTH?的值。

void

設(shè)置日歷字段?YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY?和?MINUTE?的值。

void

設(shè)置字段?YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE?和?SECOND?的值。

其中第一個(gè)就是給特定的字段設(shè)值,后面三個(gè)就是針對多個(gè)字段賦值

四,時(shí)間運(yùn)算

時(shí)間的運(yùn)算,無外乎就是加加減減,然后比較誰早誰晚而已,這些需求JAVA的API已經(jīng)幫我們實(shí)現(xiàn)的很好了。一般比較時(shí)間的可以用如下的方法

abstract ?void

根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。

boolean

Calendar?表示的時(shí)間是否在指定?Object?表示的時(shí)間之后,返回判斷結(jié)果。

boolean

Calendar?表示的時(shí)間是否在指定?Object?表示的時(shí)間之前,返回判斷結(jié)果。

第一個(gè)是給某個(gè)字段加上某個(gè)數(shù)量的時(shí)間,雖然這個(gè)方法名叫add ,我們要減也是調(diào)用它的,只不過我們傳入的是負(fù)數(shù)。

其實(shí)JAVA對時(shí)間操作的支持還是挺豐富的。希望大家的日常的使用中有更多的發(fā)現(xiàn)。

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

一. 獲取當(dāng)前系統(tǒng)時(shí)間和日期并格式化輸出:

import java.util.Date;

import java.text.SimpleDateFormat;

public class NowString {

public static void main(String[] args) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

System.out.println(df.format(new Date()));// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

}

}

二. 在數(shù)據(jù)庫里的日期只以年-月-日的方式輸出,可以用下面兩種方法:

1、用convert()轉(zhuǎn)化函數(shù):

String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

System.out.println(rs.getString("convertBookDate"));

2、利用SimpleDateFormat類:

先要輸入兩個(gè)java包:

import java.util.Date;

import java.text.SimpleDateFormat;

然后:

定義日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql語句為:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

輸出:

System.out.println(df.format(rs.getDate("bookDate")));

************************************************************

java中獲取當(dāng)前日期和時(shí)間的方法

import java.util.Date;

import java.util.Calendar;

import java.text.SimpleDateFormat;

public class TestDate{

public static void main(String[] args){

Date now = new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式

String hehe = dateFormat.format( now );

System.out.println(hehe);

Calendar c = Calendar.getInstance();//可以對每個(gè)時(shí)間域單獨(dú)修改

int year = c.get(Calendar.YEAR);

int month = c.get(Calendar.MONTH);

int date = c.get(Calendar.DATE);

int hour = c.get(Calendar.HOUR_OF_DAY);

int minute = c.get(Calendar.MINUTE);

int second = c.get(Calendar.SECOND);

System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);

}

}

有時(shí)候要把String類型的時(shí)間轉(zhuǎn)換為Date類型,通過以下的方式,就可以將你剛得到的時(shí)間字符串轉(zhuǎn)換為Date類型了。

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

java.util.Date time=null;

try {

time= sdf.parse(sdf.format(new Date()));

} catch (ParseException e) {

e.printStackTrace();

}

總結(jié)

以上是生活随笔為你收集整理的java时间设置_JAVA中的时间操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。