使用 SimpleDateFormat 解析
parsing using SimpleDateFormatter
我的日期格式如下 2018-07-13T16:06:46+00:00。我想把它转换成长。
我尝试了以下代码,它给了我解析异常。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date dt = formatter.parse("2018-07-13T16:06:46+00:00");
有人可以帮忙吗?
谢谢。
可以验证一下@Sun 发的内容,跟我得出的结论是一样的。以下代码适用于我的系统:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateFormatter {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
try {
Date dt = formatter.parse("2018-07-13T16:06:46+00:00");
System.out.println(dt);
} catch (ParseException e) {
System.out.println(e);
e.printStackTrace();
}
}
}
I would like to convert it to long
您的日期格式似乎有问题,如果您使用 java.time API it can be more easier, you can just use the default format of OffsetDateTime 是这样的:
String stringDate = "2018-07-13T16:06:46+00:00";
OffsetDateTime ofset = OffsetDateTime.parse(stringDate);
Instant instant = ofset.toInstant();
long millisecond = instant.toEpochMilli();
System.out.println(millisecond);//1531498006000
或者你可以一次完成:
//parse the date and convert it to long (It seems you want to get millisecond)
long millisecond = OffsetDateTime.parse("2018-07-13T16:06:46+00:00")
.toInstant()
.toEpochMilli();
这是 java 8 中的标准数据格式,您可以尝试:
ZonedDateTime parsedDateTime = ZonedDateTime.parse("2018-07-13T16:06:46+00:00", DateTimeFormatter.ISO_OFFSET_DATE_TIME);
System.out.println(parsedDateTime.toEpochSecond());
我的日期格式如下 2018-07-13T16:06:46+00:00。我想把它转换成长。
我尝试了以下代码,它给了我解析异常。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date dt = formatter.parse("2018-07-13T16:06:46+00:00");
有人可以帮忙吗?
谢谢。
可以验证一下@Sun 发的内容,跟我得出的结论是一样的。以下代码适用于我的系统:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateFormatter {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
try {
Date dt = formatter.parse("2018-07-13T16:06:46+00:00");
System.out.println(dt);
} catch (ParseException e) {
System.out.println(e);
e.printStackTrace();
}
}
}
I would like to convert it to long
您的日期格式似乎有问题,如果您使用 java.time API it can be more easier, you can just use the default format of OffsetDateTime 是这样的:
String stringDate = "2018-07-13T16:06:46+00:00";
OffsetDateTime ofset = OffsetDateTime.parse(stringDate);
Instant instant = ofset.toInstant();
long millisecond = instant.toEpochMilli();
System.out.println(millisecond);//1531498006000
或者你可以一次完成:
//parse the date and convert it to long (It seems you want to get millisecond)
long millisecond = OffsetDateTime.parse("2018-07-13T16:06:46+00:00")
.toInstant()
.toEpochMilli();
这是 java 8 中的标准数据格式,您可以尝试:
ZonedDateTime parsedDateTime = ZonedDateTime.parse("2018-07-13T16:06:46+00:00", DateTimeFormatter.ISO_OFFSET_DATE_TIME);
System.out.println(parsedDateTime.toEpochSecond());