美文网首页
Android 获取实时时间

Android 获取实时时间

作者: 南宫灬绝痕 | 来源:发表于2020-09-08 15:09 被阅读0次

版权所有,转载注明

代码任务不重,日常记录

1. 导入rxjava框架

//rxjava rxandroid
api 'io.reactivex.rxjava2:rxjava:2.2.19'
api 'io.reactivex.rxjava2:rxandroid:2.1.1'
api 'com.trello.rxlifecycle2:rxlifecycle-android-lifecycle:2.2.2'

2. 新建一个日期管理类

public class TimeUtil {
    //时间格式
    public final static String FORMAT_TIME = "HH:mm";
    public final static String FORMAT_DATE_TIME = "yyyy-MM-dd HH:mm";
    public final static String FORMAT_YEAR_MONTH_DAY = "yyyy/MM/dd";
    public final static String FORMAT_HOUR_MINUTES_SECOND = "HH:mm:ss";
    public final static String FORMAT_DATE_TIME_SECOND = "yyyy-MM-dd HH:mm:ss";
    public final static String FORMAT_MONTH_DAY_TIME = "MM-dd HH:mm";
    public final static String FORMAT_DATE = "yyyy-MM-dd";

    /**
     * 根据当前时间戳转换成年月日 yyyy/MM/dd
     *
     * @param timestamp
     * @return
     */
    public static String getTimeYearMonthDay(long timestamp) {
        SimpleDateFormat format = new SimpleDateFormat(FORMAT_YEAR_MONTH_DAY);
        return format.format(new Date(timestamp));
    }

    /**
     * 根据当前时间戳转换成时分秒
     *
     * @param timestamp
     * @return
     */
    public static String getTimeHourMinutesSecond(long timestamp) {
        SimpleDateFormat format = new SimpleDateFormat(FORMAT_HOUR_MINUTES_SECOND);
        return format.format(new Date(timestamp));
    }

    /**
     * 根据当前时间戳获得是星期几
     *
     * @param timestamp 时间戳
     * @return
     */
    public static String getTimeWeek(long timestamp) {
        Date date = new Date(timestamp);
        String Week = "";
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        int wek = c.get(Calendar.DAY_OF_WEEK);
        if (wek == 1) {
            Week += "星期日";
        }
        if (wek == 2) {
            Week += "星期一";
        }
        if (wek == 3) {
            Week += "星期二";
        }
        if (wek == 4) {
            Week += "星期三";
        }
        if (wek == 5) {
            Week += "星期四";
        }
        if (wek == 6) {
            Week += "星期五";
        }
        if (wek == 7) {
            Week += "星期六";
        }
        return Week;
    }
}

3. 开启线程实现

        //interval四个参数分别为:延时0单位时间开始,每隔1单位时间刷新,单位时间(NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS)。
        Disposable realTimeDisposable = Observable.interval(0, 1, TimeUnit.SECONDS)
                .map(new Function<Long, Long>() {
                    @Override
                    public Long apply(Long aLong) throws Exception {
                        return aLong;
                    }
                })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<Long>() {
                    @Override
                    public void accept(Long aLong) throws Exception {
                        //年月日
                        Log.i("yyyy/MM/dd", TimeUtil.getTimeYearMonthDay(System.currentTimeMillis()));
                        //时分秒
                        Log.i("HH:mm:ss", TimeUtil.getTimeHourMinutesSecond(System.currentTimeMillis()));
                        Log.i("星期几", TimeUtil.getTimeWeek(System.currentTimeMillis()));
                    }
                });

如果本篇文章对您有帮助 麻烦点个赞支持一下

回到顶部

相关文章

网友评论

      本文标题:Android 获取实时时间

      本文链接:https://www.haomeiwen.com/subject/mbdslktx.html