package com.xiaoqu.watch.util import java.text.SimpleDateFormat import java.util.Calendar import java.util.Date import java.util.Locale /** * 日期格式化工具 * 对应旧版 commonUtil.js 的 getDateTime() */ object DateUtil { private val weekNames = arrayOf("周日", "周一", "周二", "周三", "周四", "周五", "周六") private val formatDateTime = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) private val formatDate = SimpleDateFormat("MM月dd日", Locale.CHINA) private val formatTime = SimpleDateFormat("HH:mm:ss", Locale.CHINA) private val formatTimeShort = SimpleDateFormat("HH:mm", Locale.CHINA) /** 完整日期时间:2026-04-24 20:15:30 */ fun formatDateTime(timestamp: Long = System.currentTimeMillis()): String { return formatDateTime.format(Date(timestamp)) } /** 月日:04月24日 */ fun formatDate(timestamp: Long = System.currentTimeMillis()): String { return formatDate.format(Date(timestamp)) } /** 时分秒:20:15:30 */ fun formatTime(timestamp: Long = System.currentTimeMillis()): String { return formatTime.format(Date(timestamp)) } /** 时分:20:15 */ fun formatTimeShort(timestamp: Long = System.currentTimeMillis()): String { return formatTimeShort.format(Date(timestamp)) } /** 星期:周四 */ fun getWeekDay(timestamp: Long = System.currentTimeMillis()): String { val calendar = Calendar.getInstance() calendar.timeInMillis = timestamp return weekNames[calendar.get(Calendar.DAY_OF_WEEK) - 1] } /** * 获取完整日期信息(对应旧版 getDateTime() 返回对象) */ fun getDateInfo(timestamp: Long = System.currentTimeMillis()): DateInfo { val calendar = Calendar.getInstance() calendar.timeInMillis = timestamp return DateInfo( date = formatDate(timestamp), time = formatTime(timestamp), week = weekNames[calendar.get(Calendar.DAY_OF_WEEK) - 1], year = calendar.get(Calendar.YEAR), month = calendar.get(Calendar.MONTH) + 1, day = calendar.get(Calendar.DAY_OF_MONTH), hour = calendar.get(Calendar.HOUR_OF_DAY), minute = calendar.get(Calendar.MINUTE), second = calendar.get(Calendar.SECOND) ) } data class DateInfo( val date: String, val time: String, val week: String, val year: Int, val month: Int, val day: Int, val hour: Int, val minute: Int, val second: Int ) }