【发布时间】:2020-03-02 05:50:02
【问题描述】:
我创建了以下方法来获取 12 小时格式时间的毫秒数:
fun getMillisecondsFromTime(time: String): String {
val formatter = SimpleDateFormat("hh aa")
formatter.isLenient = false
val oldDate = formatter.parse(getLocaleTime(time,"hh aa"))
val oldMillis = oldDate.time
return "" + oldMillis
}
我在以下四个不同的时间调用此方法:
var strTime1:String = DateUtils.getMillisecondsFromTime("1 PM")//13 * 3600
var strTime2:String = DateUtils.getMillisecondsFromTime("2 PM")//14 * 3600
var strTime3:String = DateUtils.getMillisecondsFromTime("1 AM")//1 * 3600
var strTime4:String = DateUtils.getMillisecondsFromTime("2 AM")//2 * 3600
得到的结果是错误的。即 1 PM 毫秒应该是 48600 但是,我得到了:
下午 1 点>>>>>:45000000,应该是 48600
下午 2 点>>>>>:48600000,应该是 50400
可能是什么问题?
编辑:获取当地时间如下:
fun getLocaleTime(date: String, timeFormat: String): String {
val df = SimpleDateFormat(timeFormat, Locale.ENGLISH)
df.timeZone = TimeZone.getTimeZone("UTC")
val date = df.parse(date)
df.timeZone = TimeZone.getDefault()
val formattedDate = df.format(date)
return formattedDate
}
【问题讨论】:
标签: android kotlin time datetime-format milliseconds