java时间String转换成date型及日期相差天数计算

public static void main(String[] args) throws ParseException {
        String strTime1 = "2015-03-01 15:12:25";
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:MM:ss");
        Date date1 = formatter.parse(strTime1);
        String strTime2 = "2015-03-04 15:12:25";
        Date date2 = formatter.parse(strTime2);
        int dif = dateDiff(date1,date2);
        System.out.print(dif);
    }

结果:-3

其中时间的type要一致(2015-03-01 15:12:25 与 "yyyy-mm-dd hh:MM:ss"一致)

/**
     * 比较date1-date2差几天
     *
     * @param date1
     * @param date2
     * @return
     */
    public static int dateDiff(Date date1, Date date2) {
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        cal1.setTime(date1);
        cal2.setTime(date2);
        long ldate1 = date1.getTime() + cal1.get(Calendar.ZONE_OFFSET) + cal1.get(Calendar.DST_OFFSET);
        long ldate2 = date2.getTime() + cal2.get(Calendar.ZONE_OFFSET) + cal2.get(Calendar.DST_OFFSET);
        // Use integer calculation, truncate the decimals
        int hr1 = (int) (ldate1 / 3600000); // 60*60*1000
        int hr2 = (int) (ldate2 / 3600000);

int days1 = hr1 / 24;
        int days2 = hr2 / 24;

int dateDiff = days1 - days2;
        return dateDiff;
    }

时间: 2024-08-26 00:47:18

java时间String转换成date型及日期相差天数计算的相关文章

JAVA中怎么将string转换成date

比如说String date="1987-10-10";我想给他转换成DATE类型的,而且输出后还是"1987-10-10"这个格式的,不是带英文的那些东西 String -> Date 1 2 3 java.text.SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd"); String s= "2011-07-09 ";  Date date 

将string转换成char型的一般方法

C++文件读取中: infile in: in.open("file.dat",ios::in); 这样是可以的. 但是 string a; a="file.dat" in.open(a,ios::in) 这样的格式编译器将要报错,原因是C++不能识别字符串的文件名. 有时候需要自定义的文件名,就要把string类型转换成char型的. 比如: string a="hello world"; char *b=new char[20]; strcp

数据库中的java.sql.Timestamp转换成Date

查询数据库中的时间类型为 java.sql.Timestamp 保存在json中需要格式化 自定义工具类  DateJsonValueProcessor 1 package com.rom.util; 2 3 import java.text.SimpleDateFormat; 4 5 import java.util.Date; 6 import java.util.Locale; 7 8 import net.sf.json.JsonConfig; 9 import net.sf.json.

String转换成int型

private boolean judge(String str){ int year = 0; try{ year = Integer.valueOf(str).intValue(); }catch(NumberFormatException e){ e.printStackTrace(); } if(year%4==0 && year%100!=0){ return true; } else{ return false; } }

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

java使用格式String型转成Date型

public class TimeTwo { public static void main(String[] args) throws ParseException{ String s = "2018-08-12 12:02:23"; SimpleDateFormat g = new SimpleDateFormat("yyyy-MM-dd MM:mm:ss"); try{ Date h = g.parse(s);// System.out.println(h);

synchronized/java.util.concurrent.locks.Loc/如何格式化日期/将字符“12345”转换成long型

1.简述synchronized和java.util.concurrent.locks.Lock的异同?解答:主要相同点:Lock能完成synchronized所实现的所有功能 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能.synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放. 2.如何格式化日期解答:Date now=new Date();SimpleDateFormat sdf=new SimpleDate

Java String类型转换成Date日期类型

插入数据库时,存入当前日期,需要格式转换 import java.text.SimpleDateFormat; formatter = new SimpleDateFormat( "yyyy-MM-dd "); String date = formatter.format(new Date());//格式化数据,取当前时间结果为 2014-10-30 String格式的数据转化成Date格式 import java.text.SimpleDateFormat; formatter =

Java之格林威治时间格式转换成北京时间格式

Java之格林威治时间格式转换成北京时间格式 package com.mtons.mblog; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class DateUtils { /** * 支持jdk1.6的写法<br/> * 解析2015-12-27T14:20:34+08:00格式类型的时