我正在从文件中读取时间戳数据,这些时间戳我想稍后在Timer scheduler
中使用它们来根据时间戳触发一些事件。时间戳格式是这样的0.012999999999
,它们是字符串类型,我使用Long.parseLong
将其转换为long
。我尝试了下面的代码,但在运行时我收到以下错误,在我看来它是关于时间戳的格式化,但我不知道如何处理它。
码:
static TimerTask timedTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
Timer timer = new Timer();
timer.schedule(timedTask, Long.parseLong(logfile.getFileHash().get(1).getTimeStamp()));
错误:
Exception in thread "file processing" java.lang.NumberFormatException: For input string:
"0.012999999999"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at com.example.File_IO_00.File_IO.processFile(File_IO.java:77)
at com.example.File_IO_00.File_IO.access$1(File_IO.java:69)
at com.example.File_IO_00.File_IO$1.run(File_IO.java:20)
at java.lang.Thread.run(Unknown Source)
答案 0 :(得分:0)
Long
是整数类型,即0.012999999999不是有效值。您应该使用Float.parseFloat()
或Double.parseDouble()
代替。