java如何獲取兩個日期的時間差
更新時間:2020年07月12日 15:48:35 作者:王蟲蟲就愛吃
這篇文章主要為大家詳細介紹了java獲取兩個日期時間差的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java如何獲取兩個日期的時間差,供大家參考,具體內(nèi)容如下
rainBeginTime是從本地數(shù)據(jù)庫獲取的時間,格式為”yyyy-MM-ddTHH:mm:ss“。
主要邏輯:
@SuppressLint("SimpleDateFormat") SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("GMT+08"));// 這里一定要設(shè)置GMT時區(qū) String currentTime = df.format(new Date()); Date date1 = MyDateUtil.parseDate(trainBeginTime.replace("T"," "), "yyyy-MM-dd HH:mm:ss"); Date date2 = MyDateUtil.parseDate(currentTime, "yyyy-MM-dd HH:mm:ss"); // 獲取相差的天數(shù) Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); long timeInMillis1 = calendar.getTimeInMillis(); calendar.setTime(date2); long timeInMillis2 = calendar.getTimeInMillis(); long betweenDays = ((timeInMillis2 - timeInMillis1) / (1000L*3600L*24L))+2; textView.setText("時間相差"+betweenDays+"天");
其中MyDateUtil.java:
import android.os.Build; import androidx.annotation.RequiresApi; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Calendar; import java.util.Date; /** * Description: 日期工具類 */ public class MyDateUtil { /** * 將指定的日期字符串轉(zhuǎn)換成日期 * @param dateStr 日期字符串 * @param pattern 格式 * @return 日期對象 */ public static Date parseDate(String dateStr, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); Date date; try { date = sdf.parse(dateStr); } catch (ParseException e) { throw new RuntimeException("日期轉(zhuǎn)化錯誤"); } return date; } /** * 將指定的日期格式化成指定的日期字符串 * @param date 日期對象 * @param pattern 格式 * @return 格式化后的日期字符串 */ public static String dateFormate(Date date, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); String dateStr; if(date == null) { return ""; } dateStr = sdf.format(date); return dateStr; } /** * 查詢指定日期前后指定的天數(shù) * @param date 日期對象 * @param days 天數(shù) * @return 日期對象 */ public static Date incr(Date date, int days) { if (date == null){ return null; } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, days); return calendar.getTime(); } /** * 將LocalDate日期轉(zhuǎn)化成Date * @param localDate LocalDate對象 * @return Date對象 */ @RequiresApi(api = Build.VERSION_CODES.O) public static Date localDateToDate(LocalDate localDate) { if (localDate == null) { return null; } ZoneId zoneId = ZoneId.systemDefault(); ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId); Date date = Date.from(zonedDateTime.toInstant()); return date; } /** * 將Date轉(zhuǎn)成LocalDate對象 * @param date Date對象 * @return LocalDate對象 */ @RequiresApi(api = Build.VERSION_CODES.O) public static LocalDate dateToLocalDate(Date date) { if (date == null) { return null; } ZoneId zoneId = ZoneId.systemDefault(); Instant instant = date.toInstant(); LocalDate localDate = instant.atZone(zoneId).toLocalDate(); return localDate; } }
更多關(guān)于java時間操作的文章,請點擊專題:《java時間操作》
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea運行java的配置詳細教程(包含maven,mysql下載配置)
程序員們在開發(fā)的時候,一定會用到Intellij?IDEA這個集成開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于idea運行java的配置(包含maven,mysql下載配置)的相關(guān)資料,需要的朋友可以參考下2024-05-05使用java實現(xiàn)各種數(shù)據(jù)統(tǒng)計圖(柱形圖,餅圖,折線圖)
用Jfree實現(xiàn)條形柱狀圖表,java代碼實現(xiàn)??山?jīng)常用于報表的制作,代碼自動生成后可以自由查看??梢宰杂膳渲脠D表的各個屬性,用來達到自己的要求和目的。本文給大家介紹使用java實現(xiàn)各種數(shù)據(jù)統(tǒng)計圖(柱形圖,餅圖,折線圖),需要的朋友可以參考下2015-10-10Java獲取時間如何將當(dāng)前時間減一天、一月、一年、并格式化
這篇文章主要介紹了Java獲取時間,將當(dāng)前時間減一天、一月、一年,并加以格式化,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09