Android Java 判断日期是昨天,今天,明天

本文提供了一种超级简单的Android方法来判断日期是昨天、今天还是明天,通过获取年月日并计算时间差来避免闰年和跨月问题。详细介绍了显示日期格式和具体实现代码。

Android Java 判断日期是昨天今天明天

超级简单的Android 判断日期是昨天,今天,明天

看了很多实现方式,但是都有坑,比如闰年,跨月(月底,月初)都有问题,本文通过获取年月日,取时间差来判读的,超级简单。

一. 显示日期格式

  1. 今天:

    • 2019-06-20 今天
  2. 明天

    • 2019-06-20 明天
  3. 昨天

    • 2019-06-20 昨天
  4. 不在显示范围

      • 2019-06-20 周三

二. 具体实现获取今天,明天,昨天,周几

代码主要通过kotlin 实现,原理

通过 SimpleDateFormat 获取今天和目标时间的年,月,日。这样可以去除时,分,秒,毫秒,可以避免计算闰年,跨月的问题;然后两者相减,获取相差的天数,来判断今天,明天,昨天

		val DAY = 24 * 60 * 60 * 1000L
		
		/**
         * (昨天、今天,明天,周几)
         */
        fun getDayWeek(time: Long?): String {
            time?.let {
                var fomrat = SimpleDateFormat("yyyy-MM-dd")
                var t1 = fomrat.format(Date(System.currentTimeMillis()))
                var t2 = fomrat.format(Date(time))
                val today = fomrat.parse(t1).time
                val target = fomrat.parse(t2).time

                var d = today - target
                // 只获取周几,和哪一天
                //return when (d) {
                // 2019-06-20 周几/哪一天
                return "$t2 " + when (d) {
                    0L -> {
                        "今天"
                    }

                    DAY -> {
                        "昨天"
                    }

                    -DAY -> {
                        "明天"
                    }

                    else -> {
                        val calendar = Calendar.getInstance()
                        calendar.time = Date(time)
                        getWeek(calendar.get(Calendar.DAY_OF_WEEK))
                    }
                }
            }
            return ""
        }

获得周几

fun getWeek(week: Int): String {
            var w = ""

            when (week) {
                Calendar.SUNDAY -> {
                    w = "周日"
                }
                Calendar.MONDAY -> {
                    w = "周一"
                }
                Calendar.TUESDAY -> {
                    w = "周二"
                }
                Calendar.WEDNESDAY -> {
                    w = "周三"
                }
                Calendar.THURSDAY -> {
                    w = "周四"
                }
                Calendar.FRIDAY -> {
                    w = "周五"
                }
                Calendar.SATURDAY -> {
                    w = "周六"
                }
            }
            return w
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值