1. 程式人生 > >Java中的時間日期處理

Java中的時間日期處理

日常開發中對時間或者日期處理肯定層出不窮,簡單總結一下Java中時間相關的使用方法。

這裡寫圖片描述

相關類

Date:
Date表示特定的瞬間,精確到毫秒,Date中的相應方法已廢棄,從JDK 1.1開始,應該使用Calendar類實現日期和時間欄位之間轉換。
DateFormat:
DateFormat是日期/時間格式化子類的抽象類,格式化並解析日期或時間,可以進行日期 -> 文字 ,文字-> 日期的轉換。子類SimpleDateFormat。
Calendar:
Calendar是日曆抽象類,可通過其獲取日期時間。推薦使用。

Date類基本使用

public class
Test { public static void main(String[] args) { // 無參構造 Date date = new Date(); System.out.println(date);//Thu May 12 22:06:44 CST 2016 // 帶參構造 date = new Date(System.currentTimeMillis()); System.out.println(date);//Thu May 12 22:06:44 CST 2016 // void setTime(long time) 設定 Date 物件,以表示 1970 年 1 月 1 日 00:00:00以後time毫秒的時間點
// long getTime() 返回自 1970 年 1 月 1 日 00:00:00以來此 Date 物件表示的毫秒數 date.setTime(1000);// 1s System.out.println(date);//Thu Jan 01 08:00:01 CST 1970 System.out.println(date.getTime());//1000 } }

注:System.out.println(date)能夠輸出Thu May 12 22:06:44 CST 2016,是因為Date類重寫類toString()方法;date.setTime(1000)後按說應該輸出Thu Jan 01 00:00:01 CST 1970 為什麼會輸出Thu Jan 01 08:00:01 CST 1970,是因為我們是東八區。(這和系統設定的時間和時區相關)

DateFormat類基本使用

日期和時間模式

字母  日期或時間元素  表示  示例  
G  Era 標誌符  Text  AD  
y  年  Year  1996; 96  
M  年中的月份  Month  July; Jul; 07  
w  年中的週數  Number  27  
W  月份中的週數  Number  2  
D  年中的天數  Number  189  
d  月份中的天數  Number  10  
F  月份中的星期  Number  2  
E  星期中的天數  Text  Tuesday; Tue  
a  Am/pm 標記  Text  PM  
H  一天中的小時數(0-23Number  0  
k  一天中的小時數(1-24Number  24  
K  am/pm 中的小時數(0-11Number  0  
h  am/pm 中的小時數(1-12Number  12  
m  小時中的分鐘數  Number  30  
s  分鐘中的秒數  Number  55  
S  毫秒數  Number  978  
z  時區  General time zone  Pacific Standard Time; PST; GMT-08:00  
Z  時區  RFC 822 time zone  -0800  

常用構造方法:
SimpleDateFormat()//用預設的模式和預設語言環境的日期格式符號構造 SimpleDateFormat
SimpleDateFormat(String pattern)//用給定的模式和預設語言環境的日期格式符號構造 SimpleDateFormat

 public class Test {

    public static void main(String[] args) throws ParseException {
        // 日期 -> 文字
        Date date = new Date();
        // 無參構造
        DateFormat dateFormat = new SimpleDateFormat();
        // format方法 將Date格式化為日期/時間字串
        String time = dateFormat.format(date);
        System.out.println(time);// 16-5-12 下午10:38

        dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        // 帶參構造
        String time2 = dateFormat.format(date);
        System.out.println(time2);// 2016-05-12 10:41:38

        // 文字-> 日期
        String tiem3 = "2016年5月12日  22時47分15秒";
        Date date2 = new Date();
        //模式一定要和文字格式相同  包括空格數
        DateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日  hh時mm分ss秒");
        //parse()從給定字串的開始解析文字,以生成一個日期
        date2 = dateFormat2.parse(tiem3);
        System.out.println(date2);//Thu May 12 22:47:15 CST 2016
    }

}

Calendar基本使用

常用欄位:

YEARMONTH 月份 (0-11)
DAY_OF_MONTH 一個月中的某天
HOUR_OF_DAY 一天中的小時
MINUTE 分鐘
SECOND 秒
AM 上午
PM 下午

常用方法:

int get(int field)//返回給定日曆欄位的值 
abstract  void add(int field, int amount)//根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量
void set(int field, int value)//將給定的日曆欄位設定為給定值
void set(int year, int month, int date)//設定日曆欄位 YEARMONTH 和 DAY_OF_MONTH 的值
void set(int year, int month, int date, int hourOfDay, int minute)//設定日曆欄位 YEARMONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值
id set(int year, int month, int date, int hourOfDay, int minute, int second)//設定欄位 YEARMONTH、DAY_OF_MONTH、HOURMINUTESECOND 的值 
public class Test {

    public static void main(String[] args) throws ParseException {
        //獲取功能
        //getInstance方法返回Calendar物件,其日曆欄位已由當前日期和時間初始化
        Calendar calendar=Calendar.getInstance();
        //獲取年
        int year=calendar.get(Calendar.YEAR);
        //獲取月
        int month=calendar.get(Calendar.MONTH);
        //獲取日 
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + "-" + (month + 1) + "-" + day);//2016-5-12

        //add功能
        calendar.add(Calendar.YEAR, 1);
        System.out.println(calendar.get(Calendar.YEAR));//2017
        calendar.add(Calendar.MONTH, 7);
        System.out.println(calendar.get(Calendar.MONTH));//11
        calendar.add(Calendar.DAY_OF_MONTH, -12);//由於今日就是12日,-12所以會進入前一個月
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//30

        System.out.println(calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.MONTH)+"-"+calendar.get(Calendar.DAY_OF_MONTH));//2017-10-30

        //set功能
        //2008年5月12日(星期一)14時28分04秒
        calendar.set(2008, 4, 12, 14, 28,04);
        System.out.println(calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DAY_OF_MONTH));//2008-5-12
    }

}

更多方法檢視API

相關推薦

Java時間日期處理

日常開發中對時間或者日期處理肯定層出不窮,簡單總結一下Java中時間相關的使用方法。 相關類 Date: Date表示特定的瞬間,精確到毫秒,Date中的相應方法已廢棄,從JDK 1.1開

java時間處理

ins hang 獲取 span cep color rac getc pan import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; i

Django日期處理註意事項和自定義時間格式轉換

python django datetime 我們在用Django創建models時,常常會涉及時間日期字段的處理,Django裏日期相關Field有DateTimeField、DateField和TimeField三種類型,看似簡單,但其中有一些容易出錯的地方需要註意;另外,如果不習慣Djang

Java 時間處理 System.currentTimeMillis()

void ring row mem long long -m throws mes sim import org.testng.annotations.Test;import java.text.ParseException;import java.text.SimpleD

關於java和javascript互動日期處理問題彙總

javascript部分 分兩種情況: —-後臺接收long型 ——–js處理 (new Date()).getTime()//Date轉long,預設new Date()可以把當前日期時間精確到秒 輸出結果:1455862677881//即2016/2/19 14:17:5

java時間日期處理

創作不易,請勿抄襲,轉載請註明出處。如有疑問,請加微信 wx15151889890,謝謝。 [本文連結:]https://blog.csdn.net/wx740851326/article/details/https://blog.csdn.net/wx740851326/article

Java 日期時間

基礎知識 日期: 類似於 2018-12-12 時間: 類似於 2018-12-12 12:12:12 時刻: 類似於 2018-12-12 12:12:12 地區: 計算機中的 Locale, 如 zh_CN, en_US 等, 影響著對於日期, 時間, 貨幣等格式的顯示 Epoch

Spring Boot和Feign使用Java 8時間日期API(LocalDate等)的序列化問題

LocalDate、LocalTime、LocalDateTime是Java 8開始提供的時間日期API,主要用來優化Java 8以前對於時間日期的處理操作。然而,我們在使用Spring Boot或使用Spring Cloud Feign的時候,往往會發現使用請求引數或返回結

Java系統時間封裝處理

package com.cloud.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import

Java日期時間操作

boolean form cal bool 時間格式 exception system orm str2 每次在處理日期時間的時候都要打開chrome查找一番,索性自己找一下滿意的記錄下來。 一、時間格式 // hh表示12小時制; HH表示24小時制 SimpleDate

整理總結 python 時間日期類資料處理與型別轉換(含 pandas)

我自學 python 程式設計並付諸實戰,迄今三個月。 pandas可能是我最高頻使用的庫,基於它的易學、實用,我也非常建議朋友們去嘗試它。——尤其當你本身不是程式設計師,但多少跟表格或資料打點交道時,pandas 比 excel 的 VBA 簡單優雅多了。 pandas 善於處理表格類資料,而我日常接觸的資

Java時間

class api文檔 ast 天數 時間差 minimal bsp settime throw /** *觀看API文檔學習:Date中很多方法失效;Calendar頂替。 * **/import java.text.DateFormat;import java.t

java的異常處理

功能 編譯 重寫 exce 有一個 人人 關系 構造 per   計算機語言程序開發中異常幾乎是人人都會出現的問題,可以這麽說:沒有沒有異常的程序!所以,計算機語言中異常處理是十分重要的一塊,糾錯能力也是每個程序員必須具備的基本能力!   異常處理的三種處理方式:   一、

Java實現時間日期格式轉換示例

simple ati except else ktr new bsp 時間 .text package com.hanqi.util; import java.text.ParseException; import java.text.SimpleDateFormat;

JAVA關於日期的最常見的操作

before 基於 form edate str ack system mes 格式 //獲取當前系統的時間戳 long times = System.currentTimeMillis(); //創建一個當前日期對象 Da

js時間處理

頁面 http time .net ref 字符 sdn rip span 轉自 : http://blog.csdn.net/xichenguan/article/details/45512541 //將格林時間轉換成字符串格式的,用於顯示帶頁面 time : 格林時間

【C#】淺析C#日期處理

see var time tostring 靈活性 ide format tin 介紹 1.字符串轉化為日期 1.1第一種方式 使用 Convert.toDateTime 方法,該方法有很多重載方法,這裏筆者就介紹兩個常用的重載方法。 第一種: 使用: Con

Java的異常處理機制

條件 order 什麽是 浪費 sun color 越界 details 區域 基本框架如下Java中的異常處理機制只要實現自Throwable接口,繼承關系如下: 如上圖可以看出這個機制的處理對象主要分為兩種:主要區別error 表示恢復不是不可能但很困難的情況下的

Java 8 時間日期庫的20個使用演示樣例

行處理 day data- 替換 獲取當前的年月 靜態方法 2014年 習慣 function 除了lambda表達式,stream以及幾個小的改進之外,Java 8還引入了一套全新的時間日期API,在本篇教程中我們將通

初探Java的異常處理

html try語句 捕獲 內部錯誤 b2c log fcm src size ? Java中的異常有以下幾種: 1)?Error:Java運行時的內部錯誤。 2)