JAVA计算日期,时间差的几种方法
Java计算年月日时分秒时间差(两个时间相减)

Java计算年⽉⽇时分秒时间差(两个时间相减)//测试主⽅法public static void main(String[] args) {Date currentTime = df.parse("2004-03-26 13:31:40"); //当前系统时间Date firstTime = df.parse("2004-01-02 11:30:24"); //查询的数据时间String str=getTime(currentTime ,firstTime );System.out.println("获取的年⽉⽇时分秒时间差为:"+str);}//获取时间差⽅法public static String getTime(Date currentTime,Date firstTime){long diff = currentTime.getTime() - firstTime.getTime();//这样得到的差值是微秒级别Calendar currentTimes =dataToCalendar(currentTime);//当前系统时间转Calendar类型Calendar firstTimes =dataToCalendar(firstTime);//查询的数据时间转Calendar类型int year = currentTimes.get(Calendar.YEAR) - firstTimes.get(Calendar.YEAR);//获取年int month = currentTimes.get(Calendar.MONTH) - firstTimes.get(Calendar.MONTH);int day = currentTimes.get(Calendar.DAY_OF_MONTH) - firstTimes.get(Calendar.DAY_OF_MONTH);if (day < 0) {month -= 1;currentTimes.add(Calendar.MONTH, -1);day = day + currentTimes.getActualMaximum(Calendar.DAY_OF_MONTH);//获取⽇}if (month < 0) {month = (month + 12) % 12;//获取⽉year--;}long days = diff / (1000 * 60 * 60 * 24);long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60); //获取时long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60); //获取分钟long s=(diff/1000-days*24*60*60-hours*60*60-minutes*60);//获取秒String CountTime=""+"year"+"年"+month+"⽉"+day+"天"+hours+"⼩时"+minutes+"分"+s+"秒";return CountTime;}//Date类型转Calendar类型public static Calendar dataToCalendar(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar;}。
java计算两个时间相差(天、小时、分钟、秒)

java计算两个时间相差(天、⼩时、分钟、秒)public static Long dateDiff(String startTime, String endTime, String format, String str) {// 按照传⼊的格式⽣成⼀个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;long day = 0;long hour = 0;long min = 0;long sec = 0;// 获得两个时间的毫秒时间差异try {diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();day = diff / nd;// 计算差多少天hour = diff % nd / nh + day * 24;// 计算差多少⼩时min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟sec = diff % nd % nh % nm / ns;// 计算差多少秒// 输出结果System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "⼩时"+ (min - day * 24 * 60) + "分钟" + sec + "秒。
");System.out.println("hour=" + hour + ",min=" + min);if (str.equalsIgnoreCase("h")) {return hour;} else {return min;}} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}if (str.equalsIgnoreCase("h")) {return hour;} else {return min;}}。
Java获取固定格式日期计算日期相差时长

Java获取固定格式⽇期计算⽇期相差时长1、固定⽇期格式public class TimeFour {public static void main(String[] args) throws ParseException{TimeFour four = new TimeFour();four.test();}public void test() throws ParseException{Date date = new Date();DateFormat df3 = new SimpleDateFormat("yyy-MM-dd HH-mm-ss");DateFormat df4 = new SimpleDateFormat("yyy年MM⽉dd⽇ HH时mm分ss秒");System.out.println("按照指定格式 yyyy年MM⽉dd⽇ hh时mm分ss秒,区域为中⽂:" + df4.format(date));System.out.println("按照指定格式 yyyy年MM⽉dd⽇ hh时mm分ss秒,区域为中⽂:" + df3.format(date));Date date4 = df4.parse("2007年11⽉30⽇ 02时51分18秒");System.out.println(date4);}}2、获取当前时间import java.util.Date;import java.text.SimpleDateFormat;public class NowString {public static void main(String[] args) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置⽇期格式System.out.println(df.format(new Date()));// new Date()为获取当前系统时间}}3、计算时间差1. public static void calculateTimeDifferenceBySimpleDateFormat() throws ParseException {2.SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");3./*天数差*/4.Date fromDate1 = simpleFormat.parse("2018-03-01 12:00");5.Date toDate1 = simpleFormat.parse("2018-03-12 12:00");6.long from1 = fromDate1.getTime();7.long to1 = toDate1.getTime();8.int days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24));9.System.out.println("两个时间之间的天数差为:" + days);10.11./*⼩时差*/12.Date fromDate2 = simpleFormat.parse("2018-03-01 12:00");13.Date toDate2 = simpleFormat.parse("2018-03-12 12:00");14.long from2 = fromDate2.getTime();15.long to2 = toDate2.getTime();16.int hours = (int) ((to2 - from2) / (1000 * 60 * 60));17.System.out.println("两个时间之间的⼩时差为:" + hours);18.19./*分钟差*/20.Date fromDate3 = simpleFormat.parse("2018-03-01 12:00");21.Date toDate3 = simpleFormat.parse("2018-03-12 12:00");22.long from3 = fromDate3.getTime();23.long to3 = toDate3.getTime();24.int minutes = (int) ((to3 - from3) / (1000 * 60));25.System.out.println("两个时间之间的分钟差为:" + minutes);26.}。
java如何获取两个日期的时间差

java如何获取两个⽇期的时间差本⽂实例为⼤家分享了java如何获取两个⽇期的时间差,供⼤家参考,具体内容如下rainBeginTime是从本地数据库获取的时间,格式为”yyyy-MM-ddTHH:mm:ss“。
主要逻辑:@SuppressLint("SimpleDateFormat")SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");df.setTimeZone(TimeZone.getTimeZone("GMT+08"));// 这⾥⼀定要设置GMT时区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");// 获取相差的天数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 {/*** 将指定的⽇期字符串转换成⽇期* @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("⽇期转化错误");}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;}/*** 查询指定⽇期前后指定的天数* @param date ⽇期对象* @param days 天数* @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⽇期转化成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转成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;}}更多关于java时间操作的⽂章,请点击专题:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
JAVA处理日期时间常用方法

JAVA处理日期时间常用方法在Java中,处理日期和时间是非常常见的操作。
Java提供了许多内置的类和方法来处理日期和时间,这些类和方法可以帮助我们进行日期的计算、格式化、比较等操作。
本篇文章将介绍Java中常用的日期时间处理方法。
1. Java中的Date类:Java中的Date类表示了一个特定的日期和时间。
可以使用Date类的构造方法来创建一个表示当前日期和时间的对象,例如:```javaDate date = new Date(;```Date类提供了一些常用的方法,例如getYear(, getMonth(, getDay(, getHour(, getMinute(, getSecond(等,可以用来获取当前日期和时间的具体信息。
2. Java中的Calendar类:Java中的Calendar类比Date类更加灵活,可以进行更复杂的日期和时间计算。
为了创建一个Calendar对象,可以使用Calendar类的getInstance(方法,例如:```javaCalendar calendar = Calendar.getInstance(;```Calendar类提供了各种方法来进行日期和时间的计算和操作,例如add(方法可以增加或减少指定的日期和时间字段,例如增加三天:```javacalendar.add(Calendar.DAY_OF_MONTH, 3);```set(方法可以设置指定的日期和时间字段,例如设置年份为2024年:```javacalendar.set(Calendar.YEAR, 2024);```get(方法可以获取指定的日期和时间字段的值,例如获取月份:```javaint month = calendar.get(Calendar.MONTH);```其他常用的操作还包括比较两个日期的大小、格式化日期等。
3. Java中的SimpleDateFormat类:Java中的SimpleDateFormat类用于格式化日期和时间的输出。
Java获取时间差(天数差,小时差,分钟差)代码示例

Java获取时间差(天数差,⼩时差,分钟差)代码⽰例⽹上有很多博⽂是讲如何获取时间差的,我看了⼀下,多数是使⽤Calendar类来实现,但是都讲得⽐较乱,在这⾥我⽤SimpleDateFormat来实现,⽐较简单,我认为⽐较适合拿来⽤。
SimpleDateFormat 是⼀个以国别敏感的⽅式格式化和分析数据的具体类。
它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为⽇期-时间格式化选择任何⽤户指定的⽅式启动。
但是,希望⽤ DateFormat 中的getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建⼀个⽇期-时间格式化程序。
每个类⽅法返回⼀个以缺省格式化⽅式初始化的⽇期/时间格式化程序。
可以根据需要⽤ applyPattern ⽅法修改格式化⽅式。
⾸先我们先初始化我们的SimpleDateFormatSimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");//如2016-08-10 20:401.计算天数差。
String fromDate = simpleFormat.format("2016-05-01 12:00");String toDate = simpleFormat.format("2016-06-01 12:00");long from = simpleFormat.parse(fromDate).getTime();long to = simpleFormat.parse(toDate).getTime();int days = (int) ((to - from)/(1000 * 60 * 60 * 24));2.计算⼩时差String fromDate = simpleFormat.format("2016-05-01 12:00");String toDate = simpleFormat.format("2016-05-01 14:00");long from = simpleFormat.parse(fromDate).getTime();long to = simpleFormat.parse(toDate).getTime();int hours = (int) ((to - from)/(1000 * 60 * 60));3.计算分钟差:String fromDate = simpleFormat.format("2016-05-01 12:00");String toDate = simpleFormat.format("2016-05-01 12:50");long from = simpleFormat.parse(fromDate).getTime();long to = simpleFormat.parse(toDate).getTime();int minutes = (int) ((to - from)/(1000 * 60));总结以上就是本⽂关于Java获取时间差(天数差,⼩时差,分钟差)代码⽰例的全部内容,希望对⼤家有所帮助。
java获取两个天数差值的方法

java获取两个天数差值的方法在Java中,获取两个日期之间的天数差值是一个常见的需求。
下面是几种获取天数差值的方法:1. 使用Date类和getTime()方法可以使用Date类的getTime()方法获取两个日期之间的毫秒数差,然后将其转换为天数差。
示例代码:```javaimport java.util.Date;public class DateTest {public static void main(String[] args) {Date date1 = new Date();Date date2 = new Date(date1.getTime() + 1000 * 60 * 60 * 24 * 5); //date2比date1多5天long diff = date2.getTime() - date1.getTime(); //获取毫秒数差long days = diff / (1000 * 60 * 60 * 24); //转换为天数差 System.out.println('天数差:' + days);}}```2. 使用Calendar类也可以使用Calendar类来计算天数差值。
首先将两个日期转换为Calendar对象,然后使用它们的getTimeInMillis()方法获取毫秒数差,最后将其转换为天数差。
示例代码:```javaimport java.util.Calendar;public class CalendarTest {public static void main(String[] args) {Calendar calendar1 = Calendar.getInstance();Calendar calendar2 = Calendar.getInstance();calendar2.add(Calendar.DAY_OF_YEAR, 5); //calendar2比calendar1多5天long diff = calendar2.getTimeInMillis() -calendar1.getTimeInMillis(); //获取毫秒数差long days = diff / (1000 * 60 * 60 * 24); //转换为天数差 System.out.println('天数差:' + days);}}```3. 使用Java 8的日期时间APIJava 8引入了新的日期时间API,可以使用它来计算天数差值。
Java对日期Date类进行加减运算、年份加减月份加减、时间差等等

Java对⽇期Date类进⾏加减运算、年份加减⽉份加减、时间差等等实现代码⼀:import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateTestUtil {public static void main(String[] args) throws Exception {SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");String str="20110823";Date dt=sdf.parse(str);Calendar rightNow = Calendar.getInstance();rightNow.setTime(dt);rightNow.add(Calendar.YEAR,-1);//⽇期减1年rightNow.add(Calendar.MONTH,3);//⽇期加3个⽉rightNow.add(Calendar.DAY_OF_YEAR,10);//⽇期加10天Date dt1=rightNow.getTime();String reStr = sdf.format(dt1);System.out.println(reStr);}}注:在Calendar对象的add⽅法中,第⼆个参数为正数表⽰“加”,负数表⽰“减”。
代码⼆: java date ⽇期加减天数测试类代码:import java.text.SimpleDateFormat;import java.util.Date;public class DateTest {public static void main(String[] arg){Date now = new Date();addAndSubtractDaysByGetTime(now,-5);addAndSubtractDaysByGetTime(now,5);addAndSubtractDaysByCalendar(now,-5);addAndSubtractDaysByCalendar(now,5);}public static Date addAndSubtractDaysByGetTime(Date dateTime/*待处理的⽇期*/,int n/*加减天数*/){//⽇期格式SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(df.format(new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L)));//System.out.println(dd.format(new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L)));//注意这⾥⼀定要转换成Long类型,要不n超过25时会出现范围溢出,从⽽得不到想要的⽇期值return new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L);}public static Date addAndSubtractDaysByCalendar(Date dateTime/*待处理的⽇期*/,int n/*加减天数*/){//⽇期格式SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Calendar calstart = java.util.Calendar.getInstance();calstart.setTime(dateTime);calstart.add(java.util.Calendar.DAY_OF_WEEK, n);System.out.println(df.format(calstart.getTime()));//System.out.println(dd.format(calstart.getTime()));return calstart.getTime();}}运⾏结果:2014-10-062014-10-162014-10-062014-10-16代码三:在⽹上查阅资料,加上⾃⼰总结的⼀些关于Date类的⼯具类。
JAVA计算日期,时间差的几种方法

1. 手工计算2.采用一个三方的jar包(Joda time library)3. 利用TimeUnit类(java.util.concurrent 包中)方法一:手工计算程序代码import java.text.SimpleDateFormat;import java.util.Date;public class DateDifferentExample {public static void main(String[] args) {String dateStart = "01/14/2012 09:29:58";String dateStop = "01/15/2012 10:31:48";//HH converts hour in 24 hours format (0-23), day calculation SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");Date d1 = null;Date d2 = null;try {d1 = format.parse(dateStart);d2 = format.parse(dateStop);//in millisecondslong diff = d2.getTime() - d1.getTime();long diffSeconds = diff / 1000 % 60;long diffMinutes = diff / (60 * 1000) % 60;long diffHours = diff / (60 * 60 * 1000) % 24;long diffDays = diff / (24 * 60 * 60 * 1000);System.out.print(diffDays + " days, ");System.out.print(diffHours + " hours, ");System.out.print(diffMinutes + " minutes, ");System.out.print(diffSeconds + " seconds.");} catch (Exception e) {e.printStackTrace();}}}结果为:程序代码1 days, 1 hours, 1 minutes, 50 seconds.方法二:采用joda-time-2.1.jar (这里去下载:/)程序代码import java.text.SimpleDateFormat;import java.util.Date;import org.joda.time.DateTime;import org.joda.time.Days;import org.joda.time.Hours;import org.joda.time.Minutes;import org.joda.time.Seconds;public class JodaDateDifferentExample {public static void main(String[] args) {String dateStart = "01/14/2012 09:29:58";String dateStop = "01/15/2012 10:31:48";SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");Date d1 = null;Date d2 = null;try {d1 = format.parse(dateStart);d2 = format.parse(dateStop);DateTime dt1 = new DateTime(d1);DateTime dt2 = new DateTime(d2);System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");System.out.print(Minutes.minutesBetween(dt1,dt2).getMinutes() % 60 + " minutes, ");System.out.print(Seconds.secondsBetween(dt1,dt2).getSeconds() % 60 + " seconds.");} catch (Exception e) {e.printStackTrace();}}}结果为:程序代码1 days, 1 hours, 1 minutes, 50 seconds.方法三: 采用TimeUnit ( java.util.concurrent包中的TimeUnit) 程序代码long diffSeconds = diff / 1000 % 60;long diffMinutes = diff / (60 * 1000) % 60;程序代码long diffSeconds = LISECONDS.toSeconds(diff) % 60; long diffMinutes = LISECONDS.toMinutes(diff) % 60; long diffHours = LISECONDS.toHours(diff) % 24; long diffDays = LISECONDS.toDays(diff);文章参考:/article/java/361.htm。
java中date类的常用方法

java中date类的常用方法Java中的Date类是用于表示日期和时间的类,它提供了一系列常用的方法来处理日期和时间的操作。
下面将介绍Date类的一些常用方法。
1. getDate():获取当前日期的天数。
返回值为一个整数,范围从1到31。
2. getMonth():获取当前日期的月份。
返回值为一个整数,范围从0到11,其中0表示一月,11表示十二月。
3. getYear():获取当前日期的年份。
返回值为一个整数,表示当前年份减去1900。
4. getDay():获取当前日期是星期几。
返回值为一个整数,范围从0到6,其中0表示星期日,1表示星期一,以此类推。
5. getHours():获取当前时间的小时数。
返回值为一个整数,范围从0到23。
6. getMinutes():获取当前时间的分钟数。
返回值为一个整数,范围从0到59。
7. getSeconds():获取当前时间的秒数。
返回值为一个整数,范围从0到59。
8. getTime():获取当前日期和时间的毫秒数。
返回值为一个长整型数字,表示从1970年1月1日00:00:00 GMT到当前日期和时间的毫秒数。
9. setTime():设置日期和时间。
接受一个长整型参数,表示从1970年1月1日00:00:00 GMT到所设置日期和时间的毫秒数。
10. after(Date date):判断当前日期是否在指定日期之后。
返回值为一个布尔值,如果当前日期在指定日期之后,则返回true,否则返回false。
11. before(Date date):判断当前日期是否在指定日期之前。
返回值为一个布尔值,如果当前日期在指定日期之前,则返回true,否则返回false。
12. compareTo(Date date):比较当前日期和指定日期的顺序。
返回值为一个整数,如果当前日期在指定日期之前,则返回负数;如果当前日期等于指定日期,则返回0;如果当前日期在指定日期之后,则返回正数。
java中计算两个日期相差几天的方法

23. 24. 25.public static void main(String[] args) { 26.new Test().dateDiff(new SimpleDateFormat(“yyyy-MM-dd”).format(new Date()), “2010-8-23”, “yyyy-MM-dd”); 27.} 28.} 几天的方法
我们为大家收集整理了关于 java 中计算两个日期相差几天,以方便大家 参考。 1.public class Test { 2.public void dateDiff(String startTime, String endTime, String format) { 3.//按照传入的格式生成一个 simpledateformate 对象 4.SimpleDateFormat sd = new SimpleDateFormat(format); 5.long nd = 1000*24*60*60;//一天的毫秒数 6.long nh = 1000*60*60;//一小时的毫秒数 7.long nm = 1000*60;//一分钟的毫秒数 8.long ns = 1000;//一秒钟的毫秒数 9.long diff; 10.try {
11.//获得两个时间的毫秒时间差异 12.diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); 13.long day = diff/nd;//计算差多少天 14.long hour = diff%nd/nh;//计算差多少小时 15.long min = diff%nd%nh/nm;//计算差多少分钟 16.long sec = diff%nd%nh%nm/ns;//计算差多少秒 17.//输出结果 18.System.out.println(“时间相差:”+day+”天”+hour+”小时”+min+”分 钟”+sec+”秒。”); 19.} catch (ParseException e) { 20.e.printStackTrace(); 21.} 22.}
JAVA计算日期时间差的几种方法

JAVA计算日期时间差的几种方法在Java中,有几种方法可以计算日期和时间的差异。
下面将介绍一些常用的方法。
1. 使用java.util.Date和java.util.Calendar类:-获取两个日期之间的毫秒差:将两个日期转换为毫秒数,然后相减。
- 获取两个日期之间的天数差:将两个日期转换为Calendar对象,然后计算两个日期之间的天数差。
- 获取两个日期之间的小时差:将两个日期转换为Calendar对象,然后计算两个日期之间的小时差。
示例代码:```javaimport java.util.Date;import java.util.Calendar;public class DateDifferenceExamplepublic static void main(String[] args)//获取当前日期和时间Date currentDate = new Date(;//获取指定日期和时间Calendar calendar = Calendar.getInstance(;calendar.set(2024, Calendar.JANUARY, 1, 0, 0, 0);Date specifiedDate = calendar.getTime(;//计算日期和时间差long millisecondsDiff = specifiedDate.getTime( - currentDate.getTime(;calendar.setTimeInMillis(millisecondsDiff);int daysDiff = calendar.get(Calendar.DAY_OF_YEAR);int hoursDiff = calendar.get(Calendar.HOUR_OF_DAY);//输出结果System.out.println("毫秒差: " + millisecondsDiff);System.out.println("天数差: " + daysDiff);System.out.println("小时差: " + hoursDiff);}```- 获取两个日期之间的天数差:使用Period类的between方法计算两个LocalDate对象之间的天数差。
java计算时间差,日期差小结

xxx协同OA办公自动化系统内部功能需求
调查表
各位同事:
你们好!工作辛苦了!
为了更好的提升公司的管理,公司计划实施OA办公自动化系统,帮助大家更好的规范工作和提高工作效率,请大家支持和配合这次项目,认真填写如下表格,谢谢!
工号:
电话:
xxx集团OA项目小组2012年xx月xx日。
java计算两个日期相差多少天小时分钟等

java计算两个⽇期相差多少天⼩时分钟等1、时间转换data默认有toString()输出,⽐如说Date date = new Date();String toStr = date.toString();输出的结果类似于:Wed Sep 16 19:02:36 CST 2012你要输出yyyy-MM-dd hh:mm:ss这种格式的话,使⽤SimpleDataFormat类⽐如Date date = new Date();String dateStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date);System.out.println(dateStr);输出结果像下⾯这样:2009-09-16 07:02:36当然啦,你也可以把:hh:mm:ss去掉,输出的结果也就只有年-⽉-⽇了2、时间差public static String getDatePoor(Date endDate, Date nowDate) {long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long nm = 1000 * 60;// long ns = 1000;// 获得两个时间的毫秒时间差异long diff = endDate.getTime() - nowDate.getTime();// 计算差多少天long day = diff / nd;// 计算差多少⼩时long hour = diff % nd / nh;// 计算差多少分钟long min = diff % nd % nh / nm;// 计算差多少秒//输出结果// long sec = diff % nd % nh % nm / ns;return day + "天" + hour + "⼩时" + min + "分钟";}。
java8-计算时间差的方法

java8-计算时间差的⽅法⼀.简述在Java8中,我们可以使⽤以下类来计算⽇期时间差异:1.Period2.Duration3.ChronoUnit⼆.Period类主要是Period类⽅法getYears(),getMonths()和getDays()来计算.⽰例:package insping;import java.time.LocalDate;import java.time.Month;import java.time.Period;public class Test {public static void main(String[] args) {LocalDate today = LocalDate.now();System.out.println("Today : " + today);LocalDate birthDate = LocalDate.of(1993, Month.OCTOBER, 19);System.out.println("BirthDate : " + birthDate);Period p = Period.between(birthDate, today);System.out.printf("年龄 : %d 年 %d ⽉ %d ⽇", p.getYears(), p.getMonths(), p.getDays());}}结果:Today : 2017-06-16BirthDate : 1993-10-19年龄 : 23 年 7 ⽉ 28 ⽇三.Duration类提供了使⽤基于时间的值(如秒,纳秒)测量时间量的⽅法。
⽰例:package insping;import java.time.Duration;import java.time.Instant;public class Test {public static void main(String[] args) {Instant inst1 = Instant.now();System.out.println("Inst1 : " + inst1);Instant inst2 = inst1.plus(Duration.ofSeconds(10));System.out.println("Inst2 : " + inst2);System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toMillis());System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).getSeconds());}}结果:Inst1 : 2017-06-16T07:46:45.085ZInst2 : 2017-06-16T07:46:55.085ZDifference in milliseconds : 10000Difference in seconds : 10四.ChronoUnit类ChronoUnit类可⽤于在单个时间单位内测量⼀段时间,例如天数或秒。
java方法计算时间差

long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
long day1=between/(24*3600);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
System.out.println("c1小于c2");
else
System.out.println("c1大于c2");
java.util.Date now = df.parse("2004-03-26 13:31:40");
java.util.Date date=df.parse("2004-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
转:Java计算2个时间相差多少年,多少个月,多少天的几种方式

转:Java计算2个时间相差多少年,多少个⽉,多少天的⼏种⽅式⽇期⽐较对象DayCompare 代码⽤到了 lombok ,如果不⽤,其实就是把getter / setter⽅法⾃⼰写⼀遍,还有构造⽅法。
@Data@Builderpublic static class DayCompare{private int year;private int month;private int day;}/*** 计算2个⽇期之间相差的相差多少年⽉⽇* ⽐如:2011-02-02 到 2017-03-02 相差 6年,1个⽉,0天* @param fromDate* @param toDate* @return*/public static DayCompare dayComparePrecise(Date fromDate,Date toDate){Calendar from = Calendar.getInstance();from.setTime(fromDate);Calendar to = Calendar.getInstance();to.setTime(toDate);int fromYear = from.get(Calendar.YEAR);int fromMonth = from.get(Calendar.MONTH);int fromDay = from.get(Calendar.DAY_OF_MONTH);int toYear = to.get(Calendar.YEAR);int toMonth = to.get(Calendar.MONTH);int toDay = to.get(Calendar.DAY_OF_MONTH);int year = toYear - fromYear;int month = toMonth - fromMonth;int day = toDay - fromDay;return DayCompare.builder().day(day).month(month).year(year).build();}/*** 计算2个⽇期之间相差的以年、⽉、⽇为单位,各⾃计算结果是多少* ⽐如:2011-02-02 到 2017-03-02* 以年为单位相差为:6年* 以⽉为单位相差为:73个⽉* 以⽇为单位相差为:2220天* @param fromDate* @param toDate* @return*/public static DayCompare dayCompare(Date fromDate,Date toDate){Calendar from = Calendar.getInstance();from.setTime(fromDate);Calendar to = Calendar.getInstance();to.setTime(toDate);//只要年⽉int fromYear = from.get(Calendar.YEAR);int fromMonth = from.get(Calendar.MONTH);int toYear = to.get(Calendar.YEAR);int toMonth = to.get(Calendar.MONTH);int year = toYear - fromYear;int month = toYear * 12 + toMonth - (fromYear * 12 + fromMonth);int day = (int) ((to.getTimeInMillis() - from.getTimeInMillis()) / (24 * 3600 * 1000));return DayCompare.builder().day(day).month(month).year(year).build();}/*** 计算2个⽇期相差多少年* 列:2011-02-02 ~ 2017-03-02 ⼤约相差 6.1 年* @param fromDate* @param toDate* @return*/public static String yearCompare(Date fromDate,Date toDate){DayCompare result = dayComparePrecise(fromDate, toDate);double month = result.getMonth();double year = result.getYear();//返回2位⼩数,并且四舍五⼊DecimalFormat df = new DecimalFormat("######0.0");return df.format(year + month / 12);}。
java计算两个时间相差天数的方法汇总

java计算两个时间相差天数的⽅法汇总问题描述: 输⼊:两个⽇期 输出:两个⽇期相差的天数具体代码实现⽅法1: 通过Calendar类的⽇期⽐较。
注意:这⾥需要考虑⼀下:⽇期是跨年份的,如⼀个是2012年,⼀个是2015年的年份是分闰年和平年的,各⾃的天数不同/*** date2⽐date1多的天数* @param date1* @param date2* @return*/public static int differentDays(Date date1,Date date2){Calendar cal1 = Calendar.getInstance();cal1.setTime(date1);Calendar cal2 = Calendar.getInstance();cal2.setTime(date2);int day1= cal1.get(Calendar.DAY_OF_YEAR);int day2 = cal2.get(Calendar.DAY_OF_YEAR);int year1 = cal1.get(Calendar.YEAR);int year2 = cal2.get(Calendar.YEAR);if(year1 != year2) //同⼀年{int timeDistance = 0 ;for(int i = year1 ; i < year2 ; i ++){if(i%4==0 && i%100!=0 || i%400==0) //闰年{timeDistance += 366;}else //不是闰年{timeDistance += 365;}}return timeDistance + (day2-day1) ;}else //不同年{System.out.println("判断day2 - day1 : " + (day2-day1));return day2-day1;}}⽅法2: 直接通过计算两个⽇期的毫秒数,他们的差除以⼀天的毫秒数,即可得到我们想要的两个⽇期相差的天数。
java获取两个日期相差的毫秒数

java获 取 两 个 日 期 相 差 的 毫 秒 数
方法一可以使用date的getTime()方法来将当前日期格式的时间转换为毫秒数,进而相减。 long systime = new Date().getTime();//当前系统时间 long oldtime = old.getTime();//相比较的时间 Long time = (systime - oldtime);//相差毫秒数
得到两个日期相差的毫秒数就可以得到两个日期相差了几天几时几分几秒。
Hale Waihona Puke 方法二则使用calendar 的getTimeInMillis() 方法来将当前日期格式的时间转换为毫秒数。
Calendar nowDate=Calendar.getInstance(); Calendar oldDate=Calendar.getInstance(); nowDate.setTime(new Date());//设置为当前系统时间 oldDate.setTime(old);//设置为想要比较的日期 Long timeNow=nowDate.getTimeInMillis(); Long timeOld=oldDate.getTimeInMillis(); Long time = (timeNow-timeOld);//相差毫秒数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 手工计算
2.采用一个三方的jar包(Joda time library)
3. 利用TimeUnit类(java.util.concurrent 包中)
方法一:手工计算
程序代码
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDifferentExample {
public static void main(String[] args) {
String dateStart = "01/14/2012 09:29:58";
String dateStop = "01/15/2012 10:31:48";
//HH converts hour in 24 hours format (0-23), day calculation SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
//in milliseconds
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.print(diffDays + " days, ");
System.out.print(diffHours + " hours, ");
System.out.print(diffMinutes + " minutes, ");
System.out.print(diffSeconds + " seconds.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果为:
程序代码
1 days, 1 hours, 1 minutes, 50 seconds.
方法二:采用joda-time-2.1.jar (这里去下载:/)
程序代码
import java.text.SimpleDateFormat;
import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.Hours;
import org.joda.time.Minutes;
import org.joda.time.Seconds;
public class JodaDateDifferentExample {
public static void main(String[] args) {
String dateStart = "01/14/2012 09:29:58";
String dateStop = "01/15/2012 10:31:48";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
System.out.print(Minutes.minutesBetween(dt1,
dt2).getMinutes() % 60 + " minutes, ");
System.out.print(Seconds.secondsBetween(dt1,
dt2).getSeconds() % 60 + " seconds.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果为:
程序代码
1 days, 1 hours, 1 minutes, 50 seconds.
方法三: 采用TimeUnit ( java.util.concurrent包中的TimeUnit) 程序代码
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
程序代码
long diffSeconds = LISECONDS.toSeconds(diff) % 60; long diffMinutes = LISECONDS.toMinutes(diff) % 60; long diffHours = LISECONDS.toHours(diff) % 24; long diffDays = LISECONDS.toDays(diff);
文章参考:/article/java/361.htm。