Попробуйте это:
Я сделал одну функцию расширения для форматирования даты в локали приложения по умолчанию или только на английском языке.
Примечание. ЭтоФункция всегда возвращает отформатированную дату на английском языке, независимо от того, какой у вас язык устройства или какой язык вашего приложения.
И если вы хотите назначить дату в соответствии с языком вашего приложения, просто передайте еговыбранный языковой стандарт для этого метода.
Перед отображением DatePickerDialog
установите Locale
на en
следующим образом.
Locale.setDefault(Locale("en"))
startDatePickerDialog.show()
И после этого используйте этот метод для форматирования даты.
fun Context.getFormattedDate(
inputFormat: String = "dd/MM/yyyy",
outputFormat: String,
inputDate: String,
locale: Locale = Locale("en")
): String {
val inputFormat = inputFormat
var outputFormat = outputFormat
var parsed: Date? = null
var outputDate = ""
val dfInput = SimpleDateFormat(inputFormat, locale)
val dfOutput = SimpleDateFormat(outputFormat, locale)
try {
parsed = dfInput.parse(inputDate)
outputDate = dfOutput.format(parsed)
} catch (e: Exception) {
Log.e("formattedDateFromString", "Exception in formate Date From string(): " + e.message)
e.printStackTrace()
}
return outputDate
}
Как использовать эту функцию
Log.e("Formated date", getFormattedDate(
inputFormat = "dd/MM/yyyy",
outputFormat = "dd-MMM-yyyy",
inputDate = "17/05/2019"
)
)