android 时间,日期,各种不同显示的格式化工具

/**
 * 这是一个时间转换的工具类
 * <p/>
 * 计算机能识别下面的字母:"yyyy-MM-dd DD HH:mm:ss SSS"
 * y代表的是年份,M代表的是月份,d代表的当月的第几天,D代表的是当年的第几天,
 * H代表的是小时数,m代表的是分钟数,s代表的秒数,S代表的是毫秒数。这个常识是需要我们记住的。
 * <p/>
 * *方法1:long getTimeLong()
 * 获取当前时间的毫秒数
 * <p/>
 * *方法2:int getTimeInt(String filter)
 * 输入某种时间格式的字符串,显示当前时间它的数据,比如输入getTimeInt(“DD”)获取今日是当前月的天数
 * <p/>
 * * 方法3:String getTimeString()
 * 获取当前时间的完整的格式,比如2016-11-11 8:20:20
 * <p/>
 * * 方法4:String getTimeString(long time)
 * 输入一个long类型的数据,获取一个完整格式的时间字符串,获取到的格式和方法三一样
 * <p/>
 * * 方法5: String getTimeString(long time, String filter)
 * 输入一个long类型的数据和一个自定义时间的格式的字符串,获取一个自定义的时间字符串,
 * 比如getTimeString(1111111L,“MM-dd”)获取的是毫秒数11111111的月分数和天数
 * <p/>
 * * 方法6:String getTimeString( String filter)
 * 输入某种时间格式的字符串,显示当前时间它的数据,比如输入getTimeString(“DD”)获取今日是当前月的天数
 * 这个方法和方法2相似,不过这里获取到的是字符串,只能用来做显示,而方法二获取到的是数字,可以用来显示和做相关运算。
 * * 方法7:String getTimeLong( String filter,String date)
 * 输入某种时间格式的字符串和对应时间格式的时间,显示它的毫秒数,比如输入getTimeString(“MM-dd”,“8-12”)获取8月12日的毫秒数
 * 这个方法一般用于对两个时间进行比较,从而得出哪一个时间比较久
 */

public class TimeUtil {



    /**
     * SimpleDateFormat能识别的标识字符
     *  G 年代标志符
     *   y 年
     M 月
     d 日
     h 时 在上午或下午 (1~12)
     H 时 在一天中 (0~23)
     m 分
     s 秒
     S 毫秒
     E 星期
     D 一年中的第几天
     F 一月中第几个星期几
     w 一年中第几个星期
     W 一月中第几个星期
     a 上午 / 下午 标记符
     k 时 在一天中 (1~24)
     K 时 在上午或下午 (0~11)
     z 时区
     *
     */
    /**
     * 获取当前时间的毫秒数
     */
    public static long getTimeLong() {
        return System.currentTimeMillis();
    }

    /**
     * 获取当时时间的年,月,日,时分秒
     * 这里获得的时int类型的数据,要输入对应的格式
     * 比如要获得现在时间的天数值,
     * 使用getTime(“MM”),如果现在是2016年5月20日,取得的数字是5;
     */
    public static int getTimeInt(String filter) {
        //
        SimpleDateFormat format = new SimpleDateFormat(filter);
        String time = format.format(new Date());
        return Integer.parseInt(time);
    }

    /**
     * 获取当时时间的星期几
     * 这里获得的时String类型的数据,要输入对应的格式
     * 比如要获得现在时间的天数值,
     * 使用getTime(“E”),如果现在是周二,取得的字符串是“周二”;
     */
    public static String getTimeStringE() {
        SimpleDateFormat format = new SimpleDateFormat("E");
        String time = format.format(new Date());
        return time;
    }

    /**
     * 获取指定时间的年,月,日,时,分,秒
     * 这里获得的时int类型的数据,要输入完整时间的字符串和对应的格式
     * 比如要获得时间2016-12-12 14:12:10的小时的数值,
     * 使用getTime(“2016-12-12 14:12:10”,“HH”);得到14
     */
    public static int getTimeInt(String StringTime, String filter) {
        //
        SimpleDateFormat format = new SimpleDateFormat(filter);
        String time = format.format(new Date(getTimeLong("yyyy-MM-dd HH:mm:ss", StringTime)));
        return Integer.parseInt(time);
    }

    /**
     * 输入某一个完整的时间字符串,获取周几的字符串
     * getTimeStringE(“2017-6-26 14:12:10”,“E”);得到“周一”
     *
     * @param stringTime
     * @return
     */
    public static String getTimeStringE(String stringTime) {
        SimpleDateFormat format = new SimpleDateFormat("E");
        String time = format.format(new Date(getTimeLong("yyyy-MM-dd HH:mm:ss", stringTime)));
        return 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));
    }

    /**
     * 获得自定义格式的时间字符串
     * 输入的是某个时间的毫秒数,显示的可以是时间字符串的某一部分
     * 比如想要获得某一个时间的月和日,getTimeString(1111111111111,"MM-dd");
     */
    public static final String getTimeString(long time, String filter) {
        SimpleDateFormat format = new SimpleDateFormat(filter);
        return format.format(new Date(time));
    }

    /**
     * 获得自定义格式的当前的时间的字符串
     * 比如当前时间2016年8月8日12时8分21秒,getTimeString("yyyy-MM-dd"),可以得到 2016-8-12
     */
    public static final String getTimeString(String filter) {
        SimpleDateFormat format = new SimpleDateFormat(filter);
        return format.format(new Date(getTimeLong()));
    }

    /**
     * 获取某个时间的毫秒数,
     * 一般作用于时间先后的对比
     * 第一个参数是时间的格式,第二个参数是时间的具体值
     * 比如需要知道2016-6-20的毫秒数(小时和分钟默认为零),
     * getTimeLong("yyyy-MM-dd","2016-6-20")
     * 有时只有月日也是可以的,比如  getTimeLong("MM-dd","6-20") ,一般这个用来比较时间先后
     * 记住获得的毫秒数越大,时间就越近你
     */
    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;
    }


    /**
     * 获得某一个时间字符串中的局部字符串
     * 比如:String data= "2016-5-20 12:12:10",要获得后面的时间:5-20或 12:10
     * 使用:getTimeLocalString("yyyy-MM-dd HH:mm:ss",data,"MM-dd")   ,可以获得5-20
     * 如果是data="2016-5-20",要获得后面的5-20,
     * 也是一样的用法getTimeLocalString("yyyy-MM-dd ",data,"MM-dd")!
     */
    public static String getTimeLocalString(String filter, String data, String filterInside) {
        Long timeLong = getTimeLong(filter, data);
        return getTimeString(timeLong, filterInside);
    }


}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值