gpt4 book ai didi

java - 在Java中获取时间戳

转载 作者:行者123 更新时间:2023-12-01 09:30:36 24 4
gpt4 key购买 nike

(你好,世界级自动化测试员)

所以我目前有一堆测试用例可供下载,就是这样。

登录 > 导航 > 选择下载 > 下载 > 重命名计算机上的文件 > 打开它

然后我在另一个类文件上有一小段 java 代码,以便在检查这些文件后清理它们。

这里对我来说的问题是,我依靠时间戳来查找重命名并在重命名之前打开文件,今天早上进来后,我意识到时间戳差异大约有 5 秒,尽管它有所不同,所以怎么可能我获取一个时间戳,并给它一个 10 秒 +- 的范围,这样即使有一点偏差,它也能找到它?

现在我有一个 if else 语句,如果我得到正确的时间戳,它会重命名,否则它会从时间戳中获取 -1(-1 秒)并找到它),但当然这确实如此如果超过这个数就不起作用......

   String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime());
oK.click();
System.out.println(timeStamp);
Thread.sleep(500);
File fileName = new File("C:/Users/User/Downloads/" + timeStamp + (".csv"));
File newName = new File("C:/Users/User/Downloads/File.csv");
if (fileName.renameTo(newName)) {
System.out.println("File was renamed");
}
else
{
long timeStampLong = Long.parseLong(timeStamp);
long completeStamp = timeStampLong - 1;
String completeString = Long.toString(completeStamp);
File fileNameNew = new File("C:/Users/User/Downloads/" + completeString + (".csv"));
fileNameNew.renameTo(newName);
System.out.println("File was renamed after conversion");
}

我还想问如果时间戳是整数/长整型而不是字符串,我是否仍然可以将时间戳添加为目录的一部分?

另外,我不确定什么方法更好地做我想做的事情,因为现在我不确定如何捕获错误,例如在目录中找不到文件等。 if else 之后不要添加任何内容,可以吗?

如果您需要任何说明,请告诉我! :)

    String timeStampString = new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime());
Long timeStampLong = Long.getLong(timeStampString);
String newName = "allPi";
File[] files = getMatchingFiles(fileName, timeStampLong, 50000);
System.out.println(files);
for (File file:files) {
file.renameTo(new File(universal + "/Downloads/" + newName));
}

亲切的问候,

中号

最佳答案

据我了解,您正在 ok.click() 下载一个文件。这会在目标位置下载一个 csv 文件。然后您需要阅读该文件文件并重命名。

我建议你从“最后修改”的方式开始。因此,你可以尝试获取一段时间内写入的所有文件并重命名它们。

尝试以下操作:

public static File[] getMatchingFiles(String workingDirectory,final long timestamp,final long threshold){
File directoryWithFiles= new File(workingDirectory);

return directoryWithFiles.listFiles(new FilenameFilter() {
public boolean accept(File dir, String filename){
File file=new File(dir+File.separator+filename);
if(file.isFile()){
if(file.lastModified()<=timestamp && file.lastModified() >(timestamp-threshold)){
return true;
}
}
return false;
}
} );
}

workingDirectory:下载位置。
时间戳:下载开始时间。
阈值:添加一些偏移量的平均下载时间。

然后,此代码片段将为您提供在给定范围内创建的所有文件。调整您的 sleep 范围,使该范围始终为您提供单个文件。

按以下方式使用它:

File[] files=getMatchingFiles("dir",100000000,50000);

for(File file:files){
file.renameTo(new File("<renamed File path>"))
}

关于java - 在Java中获取时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com