1

如果我有时间(字符串)以以下格式进入我的班级

2013-01-25T07:31:51.00Z

我怎么把它变成一个长的?

我什至不知道要放入 DateFormat 的格式是什么。其他人有线索吗?

DateFormat formatter = new SimpleDateFormat(" MMM yyyy HH:mm:ss z");

期望的结果

long time = changeMe("2013-01-25T07:31:51.00Z");

System.out.print(time);

//012432423  <-- But only the actual long
4

2 回答 2

6

看起来你这里有格式。试试这个:

import javax.xml.bind.DatatypeConverter;

public long changeMe(String isoTimestamp) {
  final Calendar c = DatatypeConverter.parseDateTime(isoTimestamp);
  return c.getTimeInMillis();
}

顺便说一句,如果您愿意,可以c.getTime()返回对象。Date

也可以看看:

于 2013-01-25T19:49:40.787 回答
1

使用优秀的jodatime库:

DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
long time = fmt.parseDateTime("2013-01-25T07:31:51.00Z").getMillis();
于 2013-01-25T20:04:40.783 回答