在java中将字符串转换为FileTime
我有这个问题。 问题: 我正在制作一个程序,其中我通过在java中将字符串转换为FileTime,java,swing,timestamp,java.nio.file,Java,Swing,Timestamp,Java.nio.file,我有这个问题。 问题: 我正在制作一个程序,其中我通过jformattedtextfield从用户处获取输入,即字符串格式,然后我希望该值是用户选择的文件的创建时间 所以我需要使用setTimes()函数,它只接受fileTime格式。 因此,问题是::如何将字符串转换为合格的fileTime,以便可以由.nio.attribute中预定义的函数setTimes()使用 这将实现以下目的: 您必须像在文本字段中一样更改日期格式(新的SimpleDataFormat(…),并删除main方法
jformattedtextfield
从用户处获取输入,即字符串格式,然后我希望该值是用户选择的文件的创建时间
所以我需要使用setTimes()函数,它只接受fileTime格式。
因此,问题是::如何将字符串转换为合格的fileTime,以便可以由.nio.attribute中预定义的函数setTimes()使用
这将实现以下目的: 您必须像在文本字段中一样更改日期格式(新的SimpleDataFormat(…),并删除main方法
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();
}
}
这将实现以下目的: 您必须像在文本字段中一样更改日期格式(新的SimpleDataFormat(…),并删除main方法
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();
}
}
根据输入的格式(我假设它类似于
“dd/MM/yy HH:MM:ss”
),您可以使用SimpleDateFormat
将其转换为日期,从日期
可以使用Date.getTime()获得毫秒
并最终使用该值使用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());
根据输入的格式(我假设它类似于“dd/MM/yy HH:MM:ss”
),您可以使用SimpleDateFormat
将其转换为日期,从日期
可以使用Date.getTime()获得毫秒
并最终使用该值使用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());
输入是什么样的?toString()不工作吗?我想你需要限制用户以特定的格式输入日期字符串。这不是假设,用户将以dd/MM/yy HH:MM:ss格式输入。输入是什么样的?toString()不工作吗工作?我认为您需要限制用户以特定格式输入日期字符串。这并不是假设用户将以dd/MM/yy HH:MM:ss格式输入日期字符串。!@Manuel..我尝试过这个方法,但不起作用,并给出错误:::java.lang.string无法转换为java.nio.file.attribute。FileTime@Manuel..我试过了,但这不是w工作并给出错误:java.lang.String无法转换为java.nio.file.attribute.FileTime我尝试了此方法,但不起作用并给出错误:java.lang.String无法转换为java.nio.file.attribute.FileTime在Interface.actionPerformed(Interface.java:166)处好的,这很有效…非常感谢…但我还面临一个问题…文件时间我用来节省创建时间的是在JAVA中更新CTime创建时间,但在os中没有更新。例如,当我打开属性时,它显示旧的时间戳。我正在处理Win 8…你有什么idea@user2500367您可以使用以下代码段来更新创建时间:BasicFileAttributeView fileAttributeView=Files。getFileAttributeView(file,BasicFileAttributeView.class);fileAttributeView.setTimes(null,null,FileTime.fromMillis(System.currentTimeMillis()-7*24*3600*1000));
我尝试过这个方法,但不起作用,并给出错误:java.lang.String无法在Interface.actionPerformed处转换为java.nio.file.attribute.FileTime(Interface.java:166)好的,这很有效……非常感谢……但我还面临一个问题……文件时间我用来节省创建时间的是在JAVA中更新CTime创建时间,但在os中没有更新。例如,当我打开属性时,它显示旧的时间戳。我正在处理Win 8…你有什么idea@user2500367您可以使用以下代码段来更新创建时间:BasicFileAttributeView fileAttributeView=Files。getFileAttributeView(file,BasicFileAttributeView.class);fileAttributeView.setTimes(null,null,FileTime.fromMillis(System.currentTimeMillis()-7*24*3600*1000));