读取计时器任务中的时间戳时出错

时间:2014-12-03 11:32:03

标签: java timer timertask

我正在从文件中读取时间戳数据,这些时间戳我想稍后在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)

1 个答案:

答案 0 :(得分:0)

Long是整数类型,即0.012999999999不是有效值。您应该使用Float.parseFloat()Double.parseDouble()代替。