SimpleDateFormat retour mauvais moment

92AlanC:

J'essaie d'analyser une chaîne de date / heure avec SimpleDateFormat mais la sortie que je reçois est une heure plus tard que prévu.

Code

fun formatDate(dateString: String): String {
    val locale = Locale.ENGLISH
    val time = SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZZ yyyy", locale).parse(dateString)?.time

    return SimpleDateFormat("dd/MM/yyyy HH:mm", locale).format(time)
}

Tester

@Test
fun shouldFormatDate() {
    val dateString = "Wed Mar 31 23:13:44 +0000 2010"
    val expected = "31/03/2010 23:13"

    assertThat(formatDate(dateString)).isEqualTo(expected)
}

Production

expected: 31/03/2010 23:13
but was : 01/04/2010 00:13

J'ai essayé d'utiliser le fuseau horaire ISO-8601 mise en forme (X au lieu de Z), mais il ne fonctionne pas non plus.

Toute aide sera très appréciée

Le demandeur Thomas:

Votre entrée définir un décalage horaire de GMT de +0000- pour l'entrée le fuseau horaire des lieux n'a pas d' importance.

Votre sortie utilise cependant le décalage horaire en vigueur 2010-03-31 23:12 GMTdans le ENGLISHfuseau horaire de l' environnement local. Le premier Avril 2010 , la ENGLISHlocale utilise l' heure avancée, qui a un décalage horaire +0100, le sens est une heure plus tard que GMT.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=361647&siteId=1
conseillé
Classement