将字符串转换为大纪元时间

时间:2017-10-23 15:20:02

标签: java

我有一个字符串this.Platform().App(${mygroupename}).Install() ,这是一个字符串,我正在尝试将其转换为startTimestamp,如下所示。

epoch time

enter image description here

但是,我收到以下异常

  

java.lang.NumberFormatException:对于输入字符串:" 2017-10-19   16:18:03.779"

2 个答案:

答案 0 :(得分:3)

由于你无法将String转换为Long我建议将字符串转换为日期然后转换为纪元

String str = YOUR STRING;
SimpleDateFormat df = new SimpleDateFormat("YOUR String Date PATTERN");
Date date = df.parse(str);
long epoch = date.getTime();
System.out.println(epoch);

答案 1 :(得分:3)

为了得到时间,你需要抛出type,这可以保持日/年/小时......,你需要parse你的String,然后获得{ {1}}:

  • time
LocalDatetime, ZonedDateTime
  • 使用ZonedDateTime ldate = LocalDateTime.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")) .atZone(ZoneId.of("Europe/Paris")); long time = ldate.toInstant().toEpochMilli(); System.out.println(time); ,但需要使用Date
ParseException

两者都会打印String str = "2017-10-19 16:18:03.779"; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date date = df.parse(str); long epoch = date.getTime(); System.out.println(epoch);