我有这个问题。
问题:
我正在创建一个程序,我正在通过JFormatedTextField
从用户那里获取输入,即字符串格式,然后我希望这个值是用户选择的文件的创建时间。
所以我需要使用只接受fileTime格式的setTimes()函数。 所以PROBLEM是:::: 如何将字符串转换为符合条件的fileTime ,以便它可以被.nio.attribute中预定义的函数setTimes()使用。
http://www.docjar.com/docs/api/java/nio/file/attribute/FileTime.html
答案 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"
),您可以使用Date
从SimpleDateFormat
将其转换为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());