Saltar al contenido

Cómo formatear en Kotlin la fecha en string o marca de tiempo a mi formato preferido?

No dudes en divulgar nuestro sitio y códigos con tus amigos, apóyanos para ampliar esta comunidad.

Solución:

Primer formato de API:

val firstApiFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val date = LocalDate.parse("2019-08-07 09:00:00" , firstApiFormat)

Log.d("parseTesting", date.dayOfWeek.toString()) // prints Wednesday
Log.d("parseTesting", date.month.toString()) // prints August

Segundo formato de API:

val secondApiFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")
val timestamp = 1565209665.toLong() // timestamp in Long


val timestampAsDateString = java.time.format.DateTimeFormatter.ISO_INSTANT
            .format(java.time.Instant.ofEpochSecond(timestamp))

Log.d("parseTesting", timestampAsDateString) // prints 2019-08-07T20:27:45Z


val date = LocalDate.parse(timestampAsDateString, secondApiFormat)

Log.d("parseTesting", date.dayOfWeek.toString()) // prints Wednesday
Log.d("parseTesting", date.month.toString()) // prints August

Pruebe este código para obtener el día de la semana y el nombre del mes

Código

Hasta fecha de cadena

Método

fun getAbbreviatedFromDateTime(dateTime: String, dateFormat: String, field: String): String? 
    val input = SimpleDateFormat(dateFormat)
    val output = SimpleDateFormat(field)
    try 
        val getAbbreviate = input.parse(dateTime)    // parse input
        return output.format(getAbbreviate)    // format output
     catch (e: ParseException) 
        e.printStackTrace()
    

    return null

*Cómo utilizar

val monthName=getAbbreviatedFromDateTime("2019-08-07 09:00:00","yyyy-MM-dd HH:mm:ss","MMMM")
    println("monthName--"+monthName)

    val dayOfWeek=getAbbreviatedFromDateTime("2019-08-07 09:00:00","yyyy-MM-dd HH:mm:ss","EEEE")
    println("dayOfWeek--"+dayOfWeek)

A Timemillis

Métodos

 fun convertStringToCalendar( timeMillis: Long) 
    //get calendar instance
    val calendarDate = Calendar.getInstance()
    calendarDate.timeInMillis = timeMillis
    val month=getAbbreviatedFromDateTime(calendarDate,"MMMM");
    val day=getAbbreviatedFromDateTime(calendarDate,"EEEE");
    Log.d("parseTesting", month)// prints August
    Log.d("parseTesting",day)// prints Wednesday



fun getAbbreviatedFromDateTime(dateTime: Calendar, field: String): String? 
    val output = SimpleDateFormat(field)
    try 
        return output.format(dateTime.time)    // format output
     catch (e: Exception) 
        e.printStackTrace()
    

    return null

Usar

 val timestamp = "1565209665".toLong()

    convertStringToCalendar(timestamp)

Prueba esto

val stringDate="2019-08-07 09:00:00"

val dateFormat_yyyyMMddHHmmss = SimpleDateFormat(
    "yyyy-MM-dd HH:mm:ss", Locale.ENGLISH
)
val date = dateFormat_yyyyMMddHHmmss.parse(stringDate)
val calendar = Calendar.getInstance()
calendar.setTime(date)

val dayOfWeekString = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.ENGLISH)

Producción:

dayOfWeekString : wednesday

val timeInMillis = 1565242471228
val calendar = Calendar.getInstance()
calendar.setTimeInMillis(timeInMillis)

val dayOfWeekString = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.ENGLISH)

Si piensas que ha resultado provechoso este post, sería de mucha ayuda si lo compartes con otros desarrolladores y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *