关闭

安卓时间工具类,计算时间差,比较当前时间

标签: TimeUtil计算时间差时间工具类android
10159人阅读 评论(0) 收藏 举报
分类:

自己的工具类贴上来。。。有什么不足的地方请大家指出。


<span style="font-size:18px;">package com.example.property.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.text.format.Time;

/**
 * 
 * @author cj 2016-5-26
 * 
 */
public class TimeUtil {

	private SimpleDateFormat sf = null;

	/**
	 * 获取当前时间
	 * 
	 * @return
	 */
	public String getNowTime() {
		String timeString = null;
		Time time = new Time();
		time.setToNow();
		String year = thanTen(time.year);
		String month = thanTen(time.month + 1);
		String monthDay = thanTen(time.monthDay);
		String hour = thanTen(time.hour);
		String minute = thanTen(time.minute);

		timeString = year + "-" + month + "-" + monthDay + " " + hour + ":"
				+ minute;
		// System.out.println("-------timeString----------" + timeString);
		return timeString;
	}

	public int calculate(int year, int month) {

		boolean yearleap = judge(year);
		int day;
		if (yearleap && month == 2) {
			day = 29;
		} else if (!yearleap && month == 2) {
			day = 28;
		} else if (month == 4 || month == 6 || month == 9 || month == 11) {
			day = 30;
		} else {
			day = 31;
		}
		return day;
	}

	public boolean judge(int year) {
		boolean yearleap = (year % 400 == 0) || (year % 4 == 0)
				&& (year % 100 != 0);// 采用布尔数据计算判断是否能整除
		return yearleap;
	}

	/**
	 * 十一下加零
	 * 
	 * @param str
	 * @return
	 */
	public String thanTen(int str) {

		String string = null;

		if (str < 10) {
			string = "0" + str;
		} else {

			string = "" + str;

		}
		return string;
	}

	/**
	 * 计算时间差
	 * 
	 * @param starTime
	 *            开始时间
	 * @param endTime
	 *            结束时间
	 * @param type
	 *            返回类型 ==1----天,时,分。 ==2----时
	 * @return 返回时间差
	 */
	public String getTimeDifference(String starTime, String endTime) {
		String timeString = "";
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endTime);

			long diff = parse1.getTime() - parse.getTime();

			long day = diff / (24 * 60 * 60 * 1000);
			long hour = (diff / (60 * 60 * 1000) - day * 24);
			long min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
			long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
			long ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000
					- min * 60 * 1000 - s * 1000);
			// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
			// "秒");
			long hour1 = diff / (60 * 60 * 1000);
			String hourString = hour1 + "";
			long min1 = ((diff / (60 * 1000)) - hour1 * 60);
			timeString = hour1 + "小时" + min1 + "分";
			// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
			// "秒");

		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return timeString;

	}

	/**
	 * 计算相差的小时
	 * 
	 * @param starTime
	 * @param endTime
	 * @return
	 */
	public String getTimeDifferenceHour(String starTime, String endTime) {
		String timeString = "";
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endTime);

			long diff = parse1.getTime() - parse.getTime();
			String string = Long.toString(diff);

			float parseFloat = Float.parseFloat(string);

			float hour1 = parseFloat / (60 * 60 * 1000);

			timeString = Float.toString(hour1);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return timeString;

	}

	/**
	 * 获取时间中的某一个时间点
	 * 
	 * @param str
	 * @param type
	 * @return
	 */
	public String getJsonParseShiJian(String str, int type) {
		String shijanString = null;
		String nian = str.substring(0, str.indexOf("-"));
		String yue = str.substring(str.indexOf("-") + 1, str.lastIndexOf("-"));
		String tian = str.substring(str.lastIndexOf("-") + 1, str.indexOf(" "));
		String shi = str.substring(str.indexOf(" ") + 1, str.lastIndexOf(":"));
		String fen = str.substring(str.lastIndexOf(":") + 1, str.length());

		switch (type) {
		case 1:
			shijanString = nian;
			break;
		case 2:
			shijanString = yue;
			break;
		case 3:
			shijanString = tian;
			break;
		case 4:
			shijanString = shi;
			break;
		case 5:
			shijanString = fen;
			break;

		}
		return shijanString;
	}

	/**
	 * Sring变int
	 * 
	 * @param str
	 * @return
	 */
	public int strToInt(String str) {
		int value = 0;
		value = Integer.parseInt(str);
		return value;
	}

	/**
	 * 与当前时间比较早晚
	 * 
	 * @param time
	 *            需要比较的时间
	 * @return 输入的时间比现在时间晚则返回true
	 */
	public boolean compareNowTime(String time) {
		boolean isDayu = false;

		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(time);
			Date parse1 = dateFormat.parse(getNowTime());

			long diff = parse1.getTime() - parse.getTime();
			if (diff <= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return isDayu;
	}

	/**
	 * 把时间戳变yyyy-MM-dd HH:mm格式时间
	 * 
	 * @param time
	 * @return
	 */
	public String getDateToString(long time) {
		Date d = new Date(time);
		sf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		return sf.format(d);
	}

	/**
	 * 返回时间戳
	 * 
	 * @param time
	 * @return
	 */
	public long dataOne(String time) {
		SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm",
				Locale.CHINA);
		Date date;
		long l = 0;
		try {
			date = sdr.parse(time);
			l = date.getTime();
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return l;
	}

	/**
	 * 比较两个时间
	 * 
	 * @param starTime
	 *            开始时间
	 * @param endString
	 *            结束时间
	 * @return 结束时间大于开始时间返回true,否则反之֮
	 */
	public boolean compareTwoTime(String starTime, String endString) {
		boolean isDayu = false;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endString);

			long diff = parse1.getTime() - parse.getTime();
			if (diff >= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return isDayu;

	}

	public boolean compareTwoTime2(String starTime, String endString) {
		boolean isDayu = false;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endString);

			long diff = parse1.getTime() - parse.getTime();
			if (diff >= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return isDayu;

	}

	/**
	 * 获取年
	 * 
	 * @param time
	 * @return
	 */
	public String getTimeYear(String time) {

		String substring = time.substring(0, time.lastIndexOf(" "));
		return substring;

	}

	/**
	 * 换算小时,0.5小时-->0小时30分
	 * 
	 * @param hour
	 * @return
	 */
	private String convertTime(String hour) {

		String substring = hour.substring(0, hour.lastIndexOf("."));
		String substring2 = hour.substring(hour.lastIndexOf(".") + 1,
				hour.length());
		substring2 = "0." + substring2;
		float f2 = Float.parseFloat(substring2);
		f2 = f2 * 60;
		String string = Float.toString(f2);
		String min = string.substring(0, string.lastIndexOf("."));
		return substring + "小时" + min + "分";

	}
}
</span>









1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android 时间格式及时间差问题

最近做的项目中,聊天界面设计到时间格式的问题,因为以前没有仔细研究过时间格式以及时间差的问题,所以把android的时间方面的只是恶补了一下。 一、首先介绍一下时间概念。   在android中时间分为两种形式,1、时间戳  2、时间格式(Fri Sep 04 11:20:00 ...
  • wldestiny
  • wldestiny
  • 2015-09-04 11:14
  • 2973

Android计算时间差

想要写个根据消耗时长来确定开始结束时间的小工具,发现Android处理时间上有点累,可能是我没找到合适的方法吧,先把我的解决办法贴出来,有好的解决方法还希望提醒一下: 1、根据时间字符串获取毫秒数 private long getTimeMillis(String str...
  • zhangli_
  • zhangli_
  • 2016-10-14 16:13
  • 735

Android如何计算时间差

代码如下: DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse("2006-05-26 12:00:00"); Date d2...
  • u012587637
  • u012587637
  • 2016-05-06 14:44
  • 1339

Android--获取系统时间的几种方式

方式一: import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss"); ...
  • chaoyu168
  • chaoyu168
  • 2016-02-24 11:52
  • 60936

Android中计算时间差

在Android开发中有时会需要换算两个指定日期格式时间的时间差,然后转换成自己所需。 示例: DateFormat formart= newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //注意此处的日期格式、在上次开发...
  • yang593007454
  • yang593007454
  • 2014-02-11 10:23
  • 3752

Android 从服务器获取时间戳和当前时间算出时间差

获取服务器时间戳 与当前时间求差值
  • yanlixu
  • yanlixu
  • 2016-06-05 19:07
  • 4792

android日期时间的获取与时差计算

时间的获取获取当前的年月时分:SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date = sDateFormat.format(new j...
  • u014388299
  • u014388299
  • 2016-08-31 22:27
  • 1734

android 时间大小比较

首先贴上比较时间大小代码 private void TimeCompare(){ //格式化时间 SimpleDateFormat CurrentTime= new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")...
  • u013743521
  • u013743521
  • 2015-07-29 17:05
  • 9307

Android中比较日期的大小

** * Created by Kevin on 2017/3/10. * <br/> * Blog:http://blog.csdn.net/student9128 * <p/> * Description: 与日期相关的工具类 */public class D...
  • student9128
  • student9128
  • 2017-03-31 20:45
  • 5311

android获取当前系统时间,同时比较当前时间是否在一个时间段范围内

//获取当前系统时间 Date currentTime = new Date();//currentTime就是系统当前时间 //定义时间的格式 DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ...
  • baidu_31571123
  • baidu_31571123
  • 2016-05-13 18:37
  • 875
    个人资料
    • 访问:87249次
    • 积分:1003
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:3篇
    • 译文:0篇
    • 评论:66条
    最新评论