2021-07-06T19: 27: 46.811 + 0530 -> Текущее значение в виде строки

Хочу конвертировать в 05.07.2021, 06:45 в этот формат

Заранее спасибо

-1
R Suman Radhakrishnan 5 Июл 2021 в 17:40

3 ответа

Лучший ответ

Вы можете сделать это так

Ява:

SimpleDateFormat parserFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault());
SimpleDateFormat convertFormat = new SimpleDateFormat("dd/MM/yyyy, hh:mm a", Locale.getDefault());
Date date = null;
try {
    date = parserFormat.parse("2021-07-06T19:27:46.811+0530");
    if (date != null) {
        String formatedDate = convertFormat.format(date);
        Log.e("formatted date",formatedDate);
    }
} catch (ParseException e) {
    e.printStackTrace();
    Log.e("formatted date",e.getMessage());
}

Котлин:

val parserFormat =
        SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault())
val convertFormat =
        SimpleDateFormat("dd/MM/yyyy, hh:mm a", Locale.getDefault())
var date: Date? = null
try {
     date = parserFormat.parse("2021-07-06T19:27:46.811+0530")
     if (date != null) {
        val formatedDate = convertFormat.format(date)
        Log.e("formatted date", formatedDate)
     }
} catch (e: ParseException) {
    e.printStackTrace()
    Log.e("formatted date", e.message!!)
}
0
Anisur Rahman Tonu 5 Июл 2021 в 15:09

Используйте java.time:

import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter

fun main() {
    val input = "2021-07-06T19:27:46.811+0530"
    // define a DateTimeFormatter for parsing your input
    val parser = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSx")
    // and another one for formatting your output
    val formatter = DateTimeFormatter.ofPattern("dd/MM/uuuu, hh:mm a")
    // then parse the input to an OffsetDateTime using the parser
    val converted: String = OffsetDateTime.parse(input, parser)
                                          // and output the same time differently
                                          .format(formatter)
    // output the result
    println(converted)
}

Вывод этого кода

06/07/2021, 07:27 PM

Хорошо, это не совсем то значение, как в примере, показывающем желаемый результат, но я думаю, что здесь все дело в форматировании. Настройка значений потребует немного больше усилий, включая краткое описание желаемого поведения.

2
deHaar 5 Июл 2021 в 16:18

Вы можете попробовать это:

//Formats the date according to the given pattern
    private fun dateFormat(date: Date, pattern: String = "yyyy-MM-dd"): String =
        SimpleDateFormat(pattern, Locale.US).format(date)

    

И если вам нужно:

//string to date convert
        fun convertStringDate(dateString: String): LocalDate {
            val format = DateTimeFormatter.ISO_DATE
            val tmpDate = LocalDate.parse("2019-12-10", format)
            var parsedDate: LocalDate = tmpDate
            try {
                parsedDate = LocalDate.parse(dateString, format)
            } catch (e: Exception) {
                e.printStackTrace()
            }
            return parsedDate
        }
0
Haris 5 Июл 2021 в 15:21