10

SimpleDateFormat で使用できる YouTube API のアップロード日付の形式は何ですか?

例 " 2013-03-31T16:46:38.000Z"

PS ソリューションが見つかりましたyyyy-MM-dd'T'HH:mm:ss.SSSX

ありがとう

4

1 に答える 1

3

ISO 8061 の日時です

実際、少なくとも Java8 では、定義済みの .xml があるため、それを解析するのは非常に簡単DateTimeFormatterです。ここでは、デモンストレーションとしての小さな単体テストを示します。

import org.junit.Test;

import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import static org.junit.Assert.assertEquals;

public class DateTimeFormatterTest {

    @Test
    public void testIsoDateTimeParse() throws Exception {
        // when
        final ZonedDateTime dateTime = ZonedDateTime.parse("2013-03-31T16:46:38.000Z", DateTimeFormatter.ISO_DATE_TIME);

        // then
        assertEquals(2013, dateTime.getYear());
        assertEquals(3, dateTime.getMonthValue());
        assertEquals(31, dateTime.getDayOfMonth());
        assertEquals(16, dateTime.getHour());
        assertEquals(46, dateTime.getMinute());
        assertEquals(38, dateTime.getSecond());
        assertEquals(ZoneOffset.UTC, dateTime.getZone());
    }
}

Java8 より前は、ISO 8601 準拠の文字列を java.util.Date に変換する方法を見て、デフォルトで sth で Joda Timeを使用するようにしました。お気に入り:

final org.joda.time.DateTime dateTime = new org.joda.time.DateTime.parse("2013-03-31T16:46:38.000Z");

ところで、new DateTime("2013-03-31T16:46:38.000Z")デフォルトのタイムゾーンを使用するため、使用しないでください。これはおそらくあなたが望むものではありません.

于 2015-11-24T17:13:40.727 に答える