在java中有没有像"strptime"这样的函数

Nai*_*ail 2 java

假设有一个time_string,如: "wallclock(2011-09-22T01:52:00)"

在C语言中,我可以使用"strptime(time_string, "wallclock(%Y-%m-%dT%H:%M:%S)", &tm)"

获取日期时间并将其存储到struct tm中,

然后用来mktime(&tm)以秒为单位获取日期

但在Java中,我找不到如何传输字符串"wallclock(2011-09-22T01:52:00)",

有没有办法做这个工作?谢谢 :-)

Jon*_*eet 12

你可以使用SimpleDateFormat:

DateFormat format = new SimpleDateFormat("'wallclock('yyyy-MM-dd'T'HH:mm:ss')'");
Date parsed = format.parse(text);
Run Code Online (Sandbox Code Playgroud)

(请注意,您可能需要format适当地设置时区.)

或者最好(IMO)使用Joda Time进行解析:

String pattern = "'wallclock('yyyy-MM-dd'T'HH:mm:ss')'";
DateTimeFormatter formatter = DateTimeFormatter.forPattern(pattern);
LocalDateTime localDateTime = formatter.parseLocalDateTime(text);
Run Code Online (Sandbox Code Playgroud)

这将解析到一个LocalDateTime具有一个时区.

在Java 8中,您可以使用java.time.format.DateTimeFormatter.