在java中将字符串转换为FileTime

时间:2013-06-19 09:12:56

标签: java swing timestamp java.nio.file

我有这个问题。 问题: 我正在创建一个程序,我正在通过JFormatedTextField从用户那里获取输入,即字符串格式,然后我希望这个值是用户选择的文件的创建时间。

所以我需要使用只接受fileTime格式的setTimes()函数。 所以PROBLEM是:::: 如何将字符串转换为符合条件的fileTime ,以便它可以被.nio.attribute中预定义的函数setTimes()使用。

http://www.docjar.com/docs/api/java/nio/file/attribute/FileTime.html

2 个答案:

答案 0 :(得分:3)

这样可以解决问题:

您必须更改日期格式(新的SimpleDateFormat(...),就像您在文本字段中提供它一样,并确实删除主方法。

    public static void main(final String[] args) {
// TODO Auto-generated method stub
String date = "01.01.2013 10:00:10";
long milis;
try {
    milis = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").parse(date)
        .getTime();
    FileTime fileTime = FileTime.fromMillis(milis);
    System.out
        .println("Time: " + fileTime.toString());
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}

答案 1 :(得分:3)

根据输入的格式(我认为它类似于"dd/MM/yy HH:mm:ss"),您可以使用DateSimpleDateFormat将其转换为Date你可以使用Date.getTime()获得毫秒,最后使用该值来构建FileTime java.nio.file.attribute.FileTime.fromMillis(long)

这样的事情应该这样做:

String text = textField.getText();
Date date = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(text);
FileTime time = FileTime.fromMillis(date.getTime());