如何在Java中解析日期?日期格式上的一些混淆
我曾使用twitter,并使用API获取推文,为此我正在使用twitter4j库。如何在Java中解析日期?日期格式上的一些混淆,java,android,date,date-format,Java,Android,Date,Date Format,我曾使用twitter,并使用API获取推文,为此我正在使用twitter4j库。 我在推特上得到的日期是“Thu Feb 26 00:16:19 EST 2015”,这是一个日期字符串。如何将此日期字符串解析为日期对象 Java 7或以下版本: 如果您使用Java 7或更低版本,则可以像这样解析日期(有关日期时间格式的更多信息,请参见此处): Java8: Java 8有一个新的日期/时间API(Java.time),因此您可以使用新的API进行类似的解析: 要将解析的日期/时间转换为本地时区
我在推特上得到的日期是“
Thu Feb 26 00:16:19 EST 2015
”,这是一个日期字符串。如何将此日期字符串解析为日期对象 Java 7或以下版本:
如果您使用Java 7或更低版本,则可以像这样解析日期(有关日期时间格式的更多信息,请参见此处):
Java8:
Java 8有一个新的日期/时间API(Java.time),因此您可以使用新的API进行类似的解析:
要将解析的日期/时间转换为本地时区(当前计算机时区),请执行以下操作:
如果需要保留原始字符串中的时区信息,请使用ZonedDateTime而不是LocalDateTime:
public static ZonedDateTime java8Zoned() {
String dateAsString = "Thu Feb 26 00:16:19 EST 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
return ZonedDateTime.parse(dateAsString, formatter);
}
有关java.time API中日期/时间格式的详细信息:
另外,请注意,旧的SimpleDataFormat和新的java 8 DateTimeFormat之间的关键区别在于SimpleDataFormat不是线程安全的。这意味着您不能跨多个并行线程使用相同的格式化程序实例。但是,新的DateTimeFormatter是线程安全的。
DateFormat df=new SimpleDateFormat(“MM/dd/yyyy”);datestartdate=df.parse(startDateString)代码>-更多关于此的信息
public static LocalDateTime java8() {
String dateAsString = "Thu Feb 26 00:16:19 EST 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
return LocalDateTime.parse(dateAsString, formatter);
}
public static ZonedDateTime java8Zoned() {
String dateAsString = "Thu Feb 26 00:16:19 EST 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
return ZonedDateTime.parse(dateAsString, formatter);
}