Kotlin日期差计算函数求助:按规则返回发布时间文本
实现Kotlin时间差值计算函数
以下是符合需求的完整Kotlin函数实现,基于时间戳差值判断并按规则返回对应文本:
import java.time.Instant import java.time.ZoneId import java.time.format.DateTimeFormatter private fun calculateTime(date: Long): String { val currentTime = System.currentTimeMillis() val diff = currentTime - date // 计算发布时间与当前时间的毫秒差值 val oneHourMillis = 3600 * 1000L val oneDayMillis = 24 * oneHourMillis return when { diff < oneHourMillis -> "Published 15 minutes ago" diff < oneDayMillis -> "Published 4 hours ago" else -> { // 将时间戳转换为MM/dd/yyyy格式的日期字符串 val formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy") .withZone(ZoneId.systemDefault()) val formattedDate = formatter.format(Instant.ofEpochMilli(date)) "Published in $formattedDate" } } }
关键细节说明:
- 时间差值计算:用
System.currentTimeMillis()获取当前时间戳,与传入的发布时间戳计算差值,单位为毫秒 - 时间常量定义:明确1小时、1天对应的毫秒数,提升代码可读性
- 日期格式化:采用Java 8+的
DateTimeFormatter处理日期转换,相比旧版SimpleDateFormat更安全且线程安全,格式匹配需求中的10/12/2022(月/日/年)样式 - 分支逻辑:通过Kotlin的
when表达式实现清晰的条件分支,语法简洁直观
内容的提问来源于stack exchange,提问作者nikolas1903
相关产品推荐
相关产品推荐

