Я создал метод ниже, чтобы получить миллисекунды из 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
Result am получать неправильно. т.е. для 13:00 миллисекунды должны быть 48600 Но, я получаю:
13:00 >>>>>: 45000000, должно быть 48600
14:00 >>>>>: 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
}