java各種常用時間操作方法(java中操作日期的類有哪些)

本文目錄一覽:

JAVA 時間相加

如果要取出

int getDate()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。

int getDay()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。

int getHours()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。

int getMinutes()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.MINUTE) 取代。

int getMonth()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.MONTH) 取代。

int getSeconds()

已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.SECOND) 取代。

long getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。

如果要相加

void setDate(int date)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.DAY_OF_MONTH, int date) 取代。

void setHours(int hours)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.HOUR_OF_DAY, int hours) 取代。

void setMinutes(int minutes)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.MINUTE, int minutes) 取代。

void setMonth(int month)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.MONTH, int month) 取代。

void setSeconds(int seconds)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.SECOND, int seconds) 取代。

void setTime(long time)

設置此 Date 對象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以後 time 毫秒的時間點。

void setYear(int year)

已過時。 從 JDK 1.1 開始,由 Calendar.set(Calendar.YEAR, year + 1900) 取代。

最好用Calendar類代替,更方便

用java實現日期類的加減

import java.util.Date;

import java.util.Calendar;

import java.text.SimpleDateFormat;

import java.util.*;

public class CalendarExample {

private static void CalendarTimemethod() {

Date date = Calendar.getInstance().getTime();

System.out.println(“Current date and time is: ” + date);

System.out.println();

}

private static void SimpleDateFormatmethod() {

Calendar date = Calendar.getInstance();

SimpleDateFormat dateformatter = new SimpleDateFormat(

“E yyyy.MM.dd ‘at’ hh:mm:ss a zzz”);

System.out.println(“Current date and time in simple date format: “

+ dateformatter.format(date.getTime()));

System.out.println();

}

private static void Adddates() {

System.out.println(“Performing operations on calendar dates.”);

// Get today’s date

Calendar date = Calendar.getInstance();

Calendar cldr;

SimpleDateFormat dateformatter = new SimpleDateFormat(

“E yyyy.MM.dd ‘at’ hh:mm:ss a zzz”);

cldr = (Calendar) date.clone();

cldr.add(Calendar.DAY_OF_YEAR, -(365 * 2));

System.out.println(“Before two years it was: “

+ dateformatter.format(cldr.getTime()));

cldr = (Calendar) date.clone();

cldr.add(Calendar.DAY_OF_YEAR, +5);

System.out.println(“After five years it will be: “

+ dateformatter.format(cldr.getTime()));

System.out.println();

}

private static void DateDifference() {

System.out.println(“Difference between two dates”);

Date startDate1 = new GregorianCalendar(2005, 02,

25, 14, 00).getTime();

Date endDate1 = new Date();

;

long diff = endDate1.getTime() – startDate1.getTime();

System.out.println(” Difference between ” + endDate1);

System.out.println(” and ” + startDate1 + ” is ” + (diff /

(1000L * 60L * 60L * 24L)) + ” days.”);

System.out.println();

}

private static void Getcalendermethods() {

System.out.println(“Various get methods of the calendar class:”);

Calendar calender = Calendar.getInstance();

System.out.println(“Year : “

+ calender.get(Calendar.YEAR));

System.out.println(“Month : “

+ calender.get(Calendar.MONTH));

System.out.println(“Day of Month : “

+ calender.get(Calendar.DAY_OF_MONTH));

System.out.println(“Day of Week : “

+ calender.get(Calendar.DAY_OF_WEEK));

System.out.println(“Day of Year : “

+ calender.get(Calendar.DAY_OF_YEAR));

System.out.println(“Week of Year : “

+ calender.get(Calendar.WEEK_OF_YEAR));

System.out.println(“Week of Month : “

+ calender.get(Calendar.WEEK_OF_MONTH));

System.out.println(“Day of the Week in Month : “

+ calender.get(Calendar.DAY_OF_WEEK_IN_MONTH));

System.out.println(“Hour : ” + calender.get(Calendar.HOUR));

System.out.println(“AM PM : ” + calender.get(Calendar.AM_PM));

System.out.println(“Hour of the Day : “

+ calender.get(Calendar.HOUR_OF_DAY));

System.out.println(“Minute : ” + calender.get(Calendar.MINUTE));

System.out.println(“Second : ” + calender.get(Calendar.SECOND));

System.out.println();

}

public static void main(String[] args) {

System.out.println();

CalendarTimemethod();

SimpleDateFormatmethod();

Adddates();

DateDifference();

Getcalendermethods();

}

}

以上答案有林氏120燙傷中心提供。稍微再修改下就可以

java整么計算時間

提供一個時間操作類給你,你可以調用裏面的dateDiff方法,dateDiff(new Date(), getDateFromString(“明天的字符串”)表示的就是現在到明天0點之前的差距天數。

你要分鐘數的話就自己改一下dateDiff,不要除以60和24就是分鐘了

以下是工具類代碼

import org.apache.log4j.Logger;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class AdDateUtil {

    private static Logger logger = Logger.getLogger(AdDateUtil.class);

    static public String getNowStr(String format) {

        SimpleDateFormat sdf = new SimpleDateFormat(format);

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

        return now;

    }

    static public Date getFormatDate(String date, String format) {

        SimpleDateFormat sdf = new SimpleDateFormat(format);

        Date d = new Date();

        try {

            d = sdf.parse(date);

        } catch (ParseException e) {

            logger.error(e);

        }

        return d;

    }

    static public String getDateStr(Date date, String format) {

        SimpleDateFormat sdf = new SimpleDateFormat(format);

        String d = sdf.format(date);

        return d;

    }

    static public String getPadZeroString(String s, int size) {

        StringBuffer sb = new StringBuffer();

        for (int i = 0; i  (size – s.length()); i++) {

            sb.append(“0”);

        }

        sb.append(s);

        return sb.toString();

    }

    /**

    * 得到某月的天數

    *

    * @param year

    * @param month

    * @return

    */

    static public int getDayCountOfMonth(String year, String month) {

        Calendar cal = Calendar.getInstance();

        // 年

        cal.set(Calendar.YEAR, Integer.parseInt(year));

        // 月,因為Calendar里的月是從0開始,所以要-1

        cal.set(Calendar.MONTH, Integer.parseInt(month) – 1);

        return cal.getActualMaximum(Calendar.DAY_OF_MONTH);

    }

    static public String getYesterday(String format) {

        SimpleDateFormat df = new SimpleDateFormat(format);

        Calendar now = Calendar.getInstance();

        now.roll(Calendar.DAY_OF_YEAR, -1); //昨天

        return df.format(now.getTime());

    }

    /**

    * 獲取和今天附近的某天

    * @param format

    * @param diff

    * @return

    */

    static public String getADay(String format, int diff) {

        SimpleDateFormat df = new SimpleDateFormat(format);

        Calendar now = Calendar.getInstance();

        int beforeM = now.get(Calendar.MONTH);

        now.roll(Calendar.DAY_OF_YEAR, diff); //

        int nowM = now.get(Calendar.MONTH);

        //必須進行日期處理,否則2009-01-04日前七天是2009-12-28

        if (nowM  beforeM) {

            now.roll(Calendar.YEAR, -1);

        }

        return df.format(now.getTime());

    }

    static public String getTomorrow(String format) {

        SimpleDateFormat df = new SimpleDateFormat(format);

        Calendar now = Calendar.getInstance();

        now.roll(Calendar.DAY_OF_YEAR, 1); //明天

        return df.format(now.getTime());

    }

    /**

    * 得到最近num天的全部日期

    * 說明:

    * 1.日期是從昨天開始算的.

    * 2.如果num=2 , 日期是2008-03-14 ,則返回的結果為 2008-03-12、2008-03-13

    * @param num

    * @return

    */

    public static String[] getDaysByNum(int num, String date) {

        SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

        String[] result = {  };

        Calendar cal = Calendar.getInstance();

        cal.setTime(getDateFromString(date, “yyyy-MM-dd”));

        //最近一周

        result = new String[num];

        for (int i = num; i  0; i–) {

            cal.add(Calendar.DAY_OF_YEAR, -1);

            result[i – 1] = sdf.format(new Date(cal.getTimeInMillis()));

        }

        return result;

    }

    public static Date getDateFromString(String dateStr, String format) {

        if ((dateStr == null) || (format == null)) {

            try {

                throw new Exception(“數據類型異常” + dateStr + “|” + format);

            } catch (Exception e) {

                logger.error(“數據類型異常:” + e);

            }

        }

        SimpleDateFormat df = new SimpleDateFormat(format);

        Date date;

        try {

            date = df.parse(dateStr);

            return date;

        } catch (Exception ex) {

            logger.error(ex);

            return new Date();

        }

    }

    static public int getNowYear() {

        Calendar cal = Calendar.getInstance();

        return cal.get(Calendar.YEAR);

    }

    static public int getNowMonth() {

        Calendar cal = Calendar.getInstance();

        return cal.get(Calendar.MONTH) + 1;

    }

    public static String[] getMonthRang(String year, String month) {

        String beginDate = year + “-” + month + “-01”;

        String endDate = year + “-” + month + “-” +

            getDayCountOfMonth(year, month);

        return getDaysByRang(beginDate, endDate);

    }

    public static String[] getDaysByRang(String beginDate, String endDate) {

        SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

        //得到兩個日期間相差多少天

        int num = dateDiff(beginDate, endDate);

        if (num  0) {

            //顛倒一下日期

            String tmp = beginDate;

            beginDate = endDate;

            endDate = tmp;

            num = 0 – num;

        }

        String[] result = {  };

        Calendar cal = Calendar.getInstance();

        try {

            cal.setTime(sdf.parse(beginDate));

        } catch (ParseException e) {

            e.printStackTrace();

        }

        num = num + 1; //把開始和結束日期都包含進去

        result = new String[num];

        for (int i = 0; i  num; i++) {

            if (i  0) {

                cal.add(Calendar.DAY_OF_YEAR, 1);

            }

            result[i] = sdf.format(new Date(cal.getTimeInMillis()));

        }

        return result;

    }

    public static int dateDiff(String beginDate, String endDate) {

        SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

        Date date = null;

        try {

            date = sdf.parse(endDate);

        } catch (ParseException e) {

            date = new Date();

            e.printStackTrace();

        }

        long end = date.getTime();

        try {

            date = sdf.parse(beginDate);

        } catch (ParseException e) {

            date = new Date();

            e.printStackTrace();

        }

        long begin = date.getTime();

        long day = (end – begin) / (1000 * 3600 * 24); //除1000是把毫秒變成秒

        return Integer.parseInt(Long.toString(day));

    }

    public static void main(String[] args) {

        System.out.println(AdDateUtil.getADay(“yyyy-MM-dd”, -7));

    }

}

什麼是java時間API?

在我們開發中,對於任何操作,信息中時間是非常重要的一點,我們可以根據時間判斷發生的時間,時間可以記錄非常重要的信息;

在Java中,專門給我們提供了處理時間的API,根據Java封裝的時間類,我們可以很方便的操作時間信息;

在處理時間的時候,有個概念我們經常會用到,就是時間戳,時間戳表示的是從1970年01月01日00時00分00秒起至現在的總毫秒數,我們可以將時間戳與時間進行隨意的替換;

Java中處理時間的類是java.util.Date,這個類有常用的兩個構造方法,一個是無參的獲取的當前時間的對象,一個是出入一個時間戳,獲取該時間戳對應的時間,JDK中這個類還提供了一些其他的構造方法,比如傳入年月日等多個參數獲取對應的時間,但是這些構造方法JDK中已經不建議使用了,需要注意的是,使用年月日參數(過時的構造方法)創建對象的時候,傳入的年的參數需要減去1900,因為JDK中默認處理將年份增加了1900;

Java中還提供了一個類SimpleDateFormat可以方便我們將Date與字符串進行轉換,Date類中重寫了toString方法,所以當打印date的時候,會按照重寫的格式進行打印,但是有時候我們需要定義自己的格式進行輸入輸出,這時候就可以使用SimpleDateFormat類來進行自定義;

創建SimpleDateFormat對象的時候,需要傳入一個參數,我們可以按照自己想要的格式進行編寫,例如」yyyy-MM-dd hh:mm:ss:SSS」, 這樣輸出的格式就會是年-月-日 時:分:秒;我們可以隨意調整打印的順序與格式;其中yyyy表示年份,MM表示月份(大寫),dd表示日期,hh表示小時,mm表示分鐘(小寫),ss表示秒(小寫),SS表示毫秒(大寫);除了這些格式外,還可以打印到時區,周幾,一周第幾天等信息;

除了可以將時間對象轉換成字符串,SimpleDateFormat也可以將字符串轉按照相應的格式成對應的時間;

java 怎麼得到timestamp的類型的當前時間

在java當中要獲得timestamp的類型的當前時間,需要按照不同的java類型進行正確的編碼,掌握相關的技巧來整理系統時間數據,並及時修補漏洞即可解決該問題,具體的操作方法可以吃參考下面的內容。

1、首先要明確java的類型分類,注意分析java中Date及Timestamp時間的相關內容,在 Java編程當中,主要分為JavaSQLDAO、java.util.date、java.sql.date、java.sql.timestamp 等幾種類別,按照對應的類別進行正確的編程,得到正確的系統時間數據。

2、以上類別各自進行對應的編碼,java.sql.Date是指只存儲日期數據不存儲時間數據,有可能會出現丟失時間數據的情況,可通過輸入代碼preparedStatement.setDate(1, new java.sql.Date(date.getTime()))的方式來解決。

3、對於java.util.date來說,可以輸入preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));的代碼。

4、若是想得到完整的數據,包括日期和時間,可以輸入java.util.Date d = resultSet.getTimestamp(1);的代碼。

5、當然,為了避免一些潛在Timestamp 問題 的話,可以輸入java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());的代碼,這樣處理將會更加合適且有效。

java里日期循環方法

可以通過日期的add(Calendar.MONTH, 1)方法進行月份切換,輸出每個滿足條件的值

Date d1 = new SimpleDateFormat(“yyyy-MM”).parse(“2015-6”);//定義起始日期

Date d2 = new SimpleDateFormat(“yyyy-MM”).parse(“2016-5”);//定義結束日期

Calendar dd = Calendar.getInstance();//定義日期實例

dd.setTime(d1);//設置日期起始時間

while(dd.getTime().before(d2)){//判斷是否到結束日期

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM”);

String str = sdf.format(dd.getTime());

System.out.println(str);//輸出日期結果

dd.add(Calendar.MONTH, 1);//進行當前日期月份加1

}

輸出結果:

原創文章,作者:MVSQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140175.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MVSQ的頭像MVSQ
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • Python獲取當前日期的多種方法

    本文介紹如何使用Python獲取當前日期,並提供了多種方法,包括使用datetime模塊、time模塊以及第三方庫dateutil等。讓我們一步一步來看。 一、使用datetime…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29

發表回復

登錄後才能評論