|
|
|
@ -1060,49 +1060,24 @@ class SystemFunctionHandler(private val context: Context) { |
|
|
|
try { |
|
|
|
val calendar = java.util.Calendar.getInstance() |
|
|
|
val date = calendar.time |
|
|
|
|
|
|
|
val lang = java.util.Locale.getDefault().language |
|
|
|
|
|
|
|
// TTS友好的时间格式,避免AI将":"分隔的时间误读为数字 |
|
|
|
val timeStr = when (format?.lowercase(java.util.Locale.getDefault())) { |
|
|
|
"short" -> { |
|
|
|
val timeFormat = java.text.SimpleDateFormat("HH:mm", java.util.Locale.getDefault()) |
|
|
|
timeFormat.format(date) |
|
|
|
} |
|
|
|
"date" -> { |
|
|
|
val dateFormat = java.text.SimpleDateFormat("yyyy年MM月dd日", java.util.Locale.getDefault()) |
|
|
|
dateFormat.format(date) |
|
|
|
} |
|
|
|
"time" -> { |
|
|
|
val timeFormat = java.text.SimpleDateFormat("HH:mm:ss", java.util.Locale.getDefault()) |
|
|
|
timeFormat.format(date) |
|
|
|
} |
|
|
|
"full" -> { |
|
|
|
val fullFormat = java.text.SimpleDateFormat("yyyy年MM月dd日 EEEE HH:mm:ss", java.util.Locale.getDefault()) |
|
|
|
fullFormat.format(date) |
|
|
|
} |
|
|
|
"iso" -> { |
|
|
|
val isoFormat = java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", java.util.Locale.getDefault()) |
|
|
|
isoFormat.format(date) |
|
|
|
} |
|
|
|
else -> { |
|
|
|
val defaultFormat = java.text.SimpleDateFormat("yyyy年MM月dd日 HH:mm", java.util.Locale.getDefault()) |
|
|
|
defaultFormat.format(date) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 获取星期几 |
|
|
|
val weekDay = when (calendar.get(java.util.Calendar.DAY_OF_WEEK)) { |
|
|
|
java.util.Calendar.SUNDAY -> "星期日" |
|
|
|
java.util.Calendar.MONDAY -> "星期一" |
|
|
|
java.util.Calendar.TUESDAY -> "星期二" |
|
|
|
java.util.Calendar.WEDNESDAY -> "星期三" |
|
|
|
java.util.Calendar.THURSDAY -> "星期四" |
|
|
|
java.util.Calendar.FRIDAY -> "星期五" |
|
|
|
java.util.Calendar.SATURDAY -> "星期六" |
|
|
|
else -> "" |
|
|
|
"short" -> formatShortTime(date, lang) |
|
|
|
"date" -> formatDate(date, lang) |
|
|
|
"time" -> formatTime(date, lang) |
|
|
|
"full" -> formatFull(date, lang) |
|
|
|
"iso" -> java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", java.util.Locale.getDefault()).format(date) |
|
|
|
else -> formatDefaultTime(date, lang) |
|
|
|
} |
|
|
|
|
|
|
|
// 如果不是返回短格式,则添加星期几(除非format已经包含星期) |
|
|
|
|
|
|
|
// 获取星期几(使用系统locale自动适配语言) |
|
|
|
val weekDay = java.text.SimpleDateFormat("EEEE", java.util.Locale.getDefault()).format(date) |
|
|
|
|
|
|
|
// 根据格式决定是否添加星期几 |
|
|
|
val resultTime = when { |
|
|
|
format == "short" || format == "time" -> timeStr |
|
|
|
format == "short" || format == "time" || format == "iso" -> timeStr |
|
|
|
format == "full" -> timeStr // full格式已经包含了星期 |
|
|
|
else -> "$timeStr $weekDay" |
|
|
|
} |
|
|
|
@ -1120,7 +1095,43 @@ class SystemFunctionHandler(private val context: Context) { |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TTS友好的时间格式辅助方法 |
|
|
|
private fun formatShortTime(date: java.util.Date, lang: String): String = when (lang) { |
|
|
|
"zh" -> java.text.SimpleDateFormat("H时mm分", java.util.Locale.CHINESE).format(date) |
|
|
|
"ja" -> java.text.SimpleDateFormat("H時mm分", java.util.Locale.JAPANESE).format(date) |
|
|
|
"ko" -> java.text.SimpleDateFormat("H시 mm분", java.util.Locale.KOREAN).format(date) |
|
|
|
else -> java.text.SimpleDateFormat("h:mm a", java.util.Locale.getDefault()).format(date) |
|
|
|
} |
|
|
|
|
|
|
|
private fun formatDate(date: java.util.Date, lang: String): String = when (lang) { |
|
|
|
"zh" -> java.text.SimpleDateFormat("yyyy年M月d日", java.util.Locale.CHINESE).format(date) |
|
|
|
"ja" -> java.text.SimpleDateFormat("yyyy年M月d日", java.util.Locale.JAPANESE).format(date) |
|
|
|
"ko" -> java.text.SimpleDateFormat("yyyy년 M월 d일", java.util.Locale.KOREAN).format(date) |
|
|
|
else -> java.text.SimpleDateFormat("MMMM d, yyyy", java.util.Locale.getDefault()).format(date) |
|
|
|
} |
|
|
|
|
|
|
|
private fun formatTime(date: java.util.Date, lang: String): String = when (lang) { |
|
|
|
"zh" -> java.text.SimpleDateFormat("H时mm分ss秒", java.util.Locale.CHINESE).format(date) |
|
|
|
"ja" -> java.text.SimpleDateFormat("H時mm分ss秒", java.util.Locale.JAPANESE).format(date) |
|
|
|
"ko" -> java.text.SimpleDateFormat("H시 mm분 ss초", java.util.Locale.KOREAN).format(date) |
|
|
|
else -> java.text.SimpleDateFormat("h:mm:ss a", java.util.Locale.getDefault()).format(date) |
|
|
|
} |
|
|
|
|
|
|
|
private fun formatFull(date: java.util.Date, lang: String): String = when (lang) { |
|
|
|
"zh" -> java.text.SimpleDateFormat("yyyy年M月d日 EEEE H时mm分ss秒", java.util.Locale.CHINESE).format(date) |
|
|
|
"ja" -> java.text.SimpleDateFormat("yyyy年M月d日 EEEE H時mm分ss秒", java.util.Locale.JAPANESE).format(date) |
|
|
|
"ko" -> java.text.SimpleDateFormat("yyyy년 M월 d일 EEEE H시 mm분 ss초", java.util.Locale.KOREAN).format(date) |
|
|
|
else -> java.text.SimpleDateFormat("MMMM d, yyyy, EEEE, h:mm:ss a", java.util.Locale.getDefault()).format(date) |
|
|
|
} |
|
|
|
|
|
|
|
private fun formatDefaultTime(date: java.util.Date, lang: String): String = when (lang) { |
|
|
|
"zh" -> java.text.SimpleDateFormat("yyyy年M月d日 H时mm分", java.util.Locale.CHINESE).format(date) |
|
|
|
"ja" -> java.text.SimpleDateFormat("yyyy年M月d日 H時mm分", java.util.Locale.JAPANESE).format(date) |
|
|
|
"ko" -> java.text.SimpleDateFormat("yyyy년 M월 d일 H시 mm분", java.util.Locale.KOREAN).format(date) |
|
|
|
else -> java.text.SimpleDateFormat("MMMM d, yyyy, h:mm a", java.util.Locale.getDefault()).format(date) |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取当前位置(简化版,只获取最后已知位置) |
|
|
|
* @return 操作结果 |
|
|
|
|