本文目錄一覽:
- 1、JAVA中如何對兩個日期時間進行運算?
- 2、如何在Java 8中愉快地處理日期和時間
- 3、java日期類型
- 4、java中如何輸出當時的日期和時間?
- 5、java中日期時間的實現方法
- 6、java計算兩個日期相差多少天小時分鐘等
JAVA中如何對兩個日期時間進行運算?
/**
* 計算兩個日期之間相差的天數
* @param date1
* @param date2
* @return
*/
public static int daysBetween(Date date1,Date date2)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
long time1 = cal.getTimeInMillis();
cal.setTime(date2);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
如何在Java 8中愉快地處理日期和時間
LocalDate
看看新的LocalDate怎麼用:
// 取當前日期:
LocalDate today = LocalDate.now(); // – 2014-12-24
// 根據年月日取日期,12月就是12:
LocalDate crischristmas = LocalDate.of(2014, 12, 25); // – 2014-12-25
// 根據字元串取:
LocalDate endOfFeb = LocalDate.parse(“2014-02-28”); // 嚴格按照ISO yyyy-MM-dd驗證,02寫成2都不行,當然也有一個重載方法允許自己定義格式
LocalDate.parse(“2014-02-29”); // 無效日期無法通過:DateTimeParseException: Invalid date
日期轉換經常遇到,比如:
// 取本月第1天:
LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2014-12-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2014-12-02
// 取本月最後一天,再也不用計算是28,29,30還是31:
LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2014-12-31
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 變成了2015-01-01
// 取2015年1月第一個周一,這個計算用Calendar要死掉很多腦細胞:
LocalDate firstMondayOf2015 = LocalDate.parse(“2015-01-01”).with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
// 2015-01-05
LocalTime
LocalTime只包含時間,以前用java.util.Date怎麼才能只表示時間呢?答案是,假裝忽略日期。
LocalTime包含毫秒:
LocalTime now = LocalTime.now(); // 11:09:09.240
你可能想清除毫秒數:
LocalTime now = LocalTime.now().withNano(0)); // 11:09:09
構造時間也很簡單:
LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
LocalTime mid = LocalTime.parse(“12:00:00”); // 12:00:00
java日期類型
在java中,代表時間和日期的類型包括:java.util.Date和java.util.Calendar,此外,在JDBC API中還提供了3個擴展類,java.UtilDate類的子類:java.sql.Date,java.sql.Time,和java.sql.Timestamp,這三個類分別和標準SQL類型中的DATE,TIME,TIMESTAMP類型對應
在標準的SQL中,DATE類型表示日期,TIME類型表示時間,TIMESTAMP類型表示時間戳,同時包含日期和時間信息
因為java.util.Date是java.sql.Date,java.sql.Time,和java.sql.Timestamp的父類,所以java.util.Date可以對應標準SQL中的DATE,TIME,TIMESTAMP類型
所以在設置持久化類的類型是設置為java.util.Date
java中如何輸出當時的日期和時間?
代碼如下:
package com.grace.test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class showDate {
public static void main(String[] args) throws ParseException {
Date d = new Date();
String s = null;
/** 輸出格式: Mon May 05 15:23:58 CST 2014 */
System.out.println(d);
/** 輸出格式: 2014-5-5 */
s = DateFormat.getDateInstance().format(d);
System.out.println(s);
/** 輸出格式: 2014-5-5 */
s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);
System.out.println(s);
/** 輸出格式: 2014年5月5日 星期一 */
s = DateFormat.getDateInstance(DateFormat.FULL).format(d);
System.out.println(s);
/** 輸出格式: 2014-5-5 */
s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
System.out.println(s);
/** 輸出格式: 14-5-5 */
s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);
System.out.println(s);
/** 輸出格式: 2014-5-05 00:00:00 大寫H為24小時制 */
DateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
s = sdf.format(d);
System.out.println(s);
/** 輸出格式: 2014-5-05 00:00:00 小寫h為12小時制 */
DateFormat sdf2 = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
s = sdf2.format(d);
System.out.println(s);
/** 輸出格式: 20140505000000 */
DateFormat sdf3 = new SimpleDateFormat(“yyyyMMddHHmmss”);
s = sdf3.format(d);
System.out.println(s);
/** 字元串轉換城日期格式 */
s = sdf.format(d);
Date today = sdf.parse(s);
System.out.println(“字元串轉成日期1:” + today);
System.out.println(“字元串轉成日期2:” + sdf.format(today));
/** 單獨輸出年月日時分秒等 */
Calendar c = Calendar.getInstance();
System.out.println(“年: ” + c.get(Calendar.YEAR));
// 月份從0開始,加1校正
System.out.println(“月: ” + (c.get(Calendar.MONTH) + 1) + “”);
System.out.println(“日: ” + c.get(Calendar.DAY_OF_MONTH));
System.out.println(“時: ” + c.get(Calendar.HOUR_OF_DAY));
System.out.println(“分: ” + c.get(Calendar.MINUTE));
System.out.println(“秒: ” + c.get(Calendar.SECOND));
System.out.println(“當前時間毫秒數:” + c.getTimeInMillis());
System.out.println(“當前時間: ” + c.getTime());
}
}
java中日期時間的實現方法
java中,日期函數的實現方法是通過獲取當前時間距離格林治時間1970-1-1 00:00:00的時間差額,獲取到時間相差的毫秒數。這個函數在jdk中是直接調用的系統相關的函數獲取的,至於這個數據,是通過專門的時鐘晶片進行統計的。會有相關的位置存放時間。
如果你想知道更具體的,就參考下JDK中的源碼吧,這是最詳細的。
java計算兩個日期相差多少天小時分鐘等
Java計算兩個日期時間相差幾天,幾小時,幾分鐘,其實好簡單就可以實現jsp,java中計算兩個時間差了
public class Test {
public void dateDiff(String startTime, String endTime, String format) {
//按照傳入的格式生成一個simpledateformate對象
SimpleDateFormat sd = new SimpleDateFormat(format);
long nd = 1000*24*60*60;//一天的毫秒數
long nh = 1000*60*60;//一小時的毫秒數
long nm = 1000*60;//一分鐘的毫秒數
long ns = 1000;//一秒鐘的毫秒數long diff;try {
//獲得兩個時間的毫秒時間差異
diff = sd.parse(endTime).getTime() – sd.parse(startTime).getTime();
long day = diff/nd;//計算差多少天
long hour = diff%nd/nh;//計算差多少小時
long min = diff%nd%nh/nm;//計算差多少分鐘
long sec = diff%nd%nh%nm/ns;//計算差多少秒//輸出結果
System.out.println(“時間相差:”+day+”天”+hour+”小時”+min+”分鐘”+sec+”秒。”);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/155195.html