Котлин - конвертировать UTC в местное время - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь преобразовать строковую дату UTC в местное время, чтобы она была в более читаемом формате.У меня есть textView, что в макете моей деятельности:

<TextView
    android:id="@+id/dateTv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/titleTv"
    tools:text="Published Date" />

В моей активности:

class FullArticleActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_full_article)

    val articleJson = intent.getStringExtra(ARTICLE_KEY)


    if(!articleJson.isNullOrBlank()) {
      val article = Gson().fromJson<Article>(articleJson, Article::class.java)

        val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ", Locale.getDefault())
        formatter.timeZone = TimeZone.getTimeZone("UTC")
        val formattedDate = formatter.parse(article.publishedAt)

      titleTv.text = article.title
      //UTC string
      dateTv.text = article.publishedAt
      contentTv.text = article.content

Строка publishedAt в этом формате из вызова API "2018-12-10T19:48:39Z",Как я могу преобразовать этот формат времени ZULU в местное время?

1 Ответ

0 голосов
/ 11 декабря 2018

Попробуйте использовать функции расширения

fun String.toDate(dateFormat: String = "yyyy-MM-dd HH:mm:ss", timeZone: TimeZone = TimeZone.getTimeZone("UTC")): Date {
val parser = SimpleDateFormat(dateFormat, Locale.getDefault())
parser.timeZone = timeZone
return parser.parse(this)
}

fun Date.formatTo(dateFormat: String, timeZone: TimeZone = TimeZone.getDefault()): String {
val formatter = SimpleDateFormat(dateFormat, Locale.getDefault())
formatter.timeZone = timeZone
return formatter.format(this)
}

Использование:

"2018-09-10 22:01:00".toDate().formatTo("dd MMM yyyy")

Вывод: "11 сентября 2018"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...