这是一个方便时间显示的工具类,比如很方便显示当前的年月日时分秒,或者只显示年月日等等。
后面一个方法,可以很方便的比较两个时间的先后。
一.工具类的设计
package com.android.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 这是一个时间转换的工具类
*
* 计算机能识别下面的字母:"yyyy-MM-dd DD HH:mm:ss SSS"
* y代表的是年份,M代表的是月份,d代表的当月的第几天,D代表的是当年的第几天,
* H代表的是小时数,m代表的是分钟数,s代表的秒数,S代表的是毫秒数。这个常识是需要我们记住的。
*
* *方法1:long getTimeLong()
* 获取当前时间的毫秒数
*
* *方法2:int getTimeInt(String filter)
* 输入某种时间格式的字符串,显示当前时间它的数据,比如输入getTimeInt(“DD”)获取今日是当前月的天数
*
* * 方法3:String getTimeString()
* 获取当前时间的完整的格式,比如2016-11-11 8:20:20
*
* * 方法4:String getTimeString(long time)
* 输入一个long类型的数据,获取一个完整格式的时间字符串,获取到的格式和方法三一样
*
* * 方法5: String getTimeString(long time, String filter)
* 输入一个long类型的数据和一个自定义时间的格式的字符串,获取一个自定义的时间字符串,
* 比如getTimeString(1111111L,“MM-dd”)获取的是毫秒数11111111的月分数和天数
*
* * 方法6:String getTimeString( String filter)
* 输入某种时间格式的字符串,显示当前时间它的数据,比如输入getTimeString(“DD”)获取今日是当前月的天数
* 这个方法和方法2相似,不过这里获取到的是字符串,只能用来做显示,而方法二获取到的是数字,可以用来显示和做相关运算。
* * 方法7:String getTimeLong( String filter,String date)
* 输入某种时间格式的字符串和对应时间格式的时间,显示它的毫秒数,比如输入getTimeString(“MM-dd”,“8-12”)获取8月12日的毫秒数
* 这个方法一般用于对两个时间进行比较,从而得出哪一个时间比较久
*
*/
public class TimeUtils {
/**
* 获取当前时间的毫秒数
*/
public static long getTimeLong(){
return System.currentTimeMillis();
}
/**
* 获取当时时间的年,月,日,时分秒
* 这里获得的时int类型的数据,要输入对应的格式
* 比如要获得现在时间的小时数,使用getTime(“MM”);
*/
public static int getTimeInt(String filter){
//
SimpleDateFormat format = new SimpleDateFormat(filter);
String time=format.format(new Date());
return Integer.parseInt(time);
}
/**
* 获取当前时间的完整显示字符串
*/
public static final String getTimeString() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(new Date(getTimeLong()));
}
/**
* 获得某个时间的完整格式的字符串
*/
public static final String getTimeString(long time) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(new Date(time));
}
/**
* 获得自定义格式的时间字符串
*/
public static final String getTimeString(long time, String filter) {
SimpleDateFormat format = new SimpleDateFormat(filter);
return format.format(new Date(time));
}
/**
* 获得自定义格式的当前的时间的字符串
*/
public static final String getTimeString( String filter) {
SimpleDateFormat format = new SimpleDateFormat(filter);
return format.format(new Date(getTimeLong()));
}
/**
* 获取某个时间的毫秒数,
* 一般作用于时间先后的对比
* 第一个参数是时间的格式,第二个参数是时间的具体值
*/
public static Long getTimeLong(String filter, String date) {
try {
SimpleDateFormat format = new SimpleDateFormat(filter);
Date dateTime = format.parse(date);
return dateTime.getTime();
} catch (Exception e) {
e.printStackTrace();
}
return 0L;
}
}
二.调用演示
package com.lwz.amin;
import com.android.utils.TimeUtils;
/**
*时间工具类的使用示范
*/
public class TimeClass {
public static void main(String[] args) {
//获取当前时间的毫秒数
System.out.println("当前时间的毫秒数:"+TimeUtils.getTimeLong());
//获取当前时间的月份
System.out.println("当前时间的月份:"+TimeUtils.getTimeInt("MM"));
//获取当前时间的完整日期
System.out.println("当前时间的完整日期:"+TimeUtils.getTimeString());
//获取当前时间的年月日以及今天是今年的第几天
System.out.println("当前时间的年月日:"+TimeUtils.getTimeString("yyyy年MM月dd日"));
//获取当前时间是今年的第几天
System.out.println("现在是今年的第:"+TimeUtils.getTimeString("DD")+"天");
//获取自定义的毫秒数的时间的完整字符串,有时要在后面加L代表Long类型的数据
System.out.println("毫秒数181818181818表示的时间是:"+TimeUtils.getTimeString(181818181818L));
//获取自定义的毫秒数的时间的自定义时间格式的字符串,有时要在后面加L代表Long类型的数据
System.out.println("毫秒数181818181818表示的月日是:"+TimeUtils.getTimeString(181818181818L,"MM-dd"));
/**
* 比较两个时间的先后
*/
Long time1= TimeUtils.getTimeLong("yyyy-MM","2015-8");
Long time2= TimeUtils.getTimeLong("yyyy-MM","2014-12");
Log.e("TAG",time1>time2?"2015-8时间比较久":"2014-12时间比较久");
}
}
程序运行后显示的Log信息:
最后一个功能可以用于时间字符串的排序。