我可以在 SimpleDateFormat 中使用的 youtube api 上传日期的格式是什么?
示例“ 2013-03-31T16:46:38.000Z
”
PS解决方案找到了yyyy-MM-dd'T'HH:mm:ss.SSSX
谢谢
这是一个ISO 8061 日期时间
实际上,至少在 Java8 中,解析那个非常简单,因为有一个预定义的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 之前,我会看看Converting ISO 8601-compliant String to java.util.Date和 definitley default to using Joda Time with sth。喜欢:
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")
,因为它会使用您的默认时区,这可能不是您想要的。