本文目錄一覽:
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