SimpleDateFormat不能在时间格式上使用冒号“:”

时间:2019-01-25 01:59:17

标签: java selenium

我正在尝试使用方法名称以及日期和时间戳来捕获那些失败的测试用例的屏幕截图。当我使用冒号以外的其他代码时,下面的代码图片正在工作。 simpleDateFormat(“ MMM d yyyy hh:mm:ss”)。 含义下面的代码可以正常工作。

public void getScreenshots(String imgName) throws IOException{
        File image = enter code here((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        System.out.println(image);
        String screenShotLocation =(".\\src\\main\\java\\com\\phpTravels\\screenshots\\");
        DateFormat dateFormat = new SimpleDateFormat("MMM d yyyy hh.mm.ss");
        Date localDate = new Date();
        String finalImage = (screenShotLocation+ dateFormat.format(localDate)+"_" +imgName +".png");
        System.out.println(finalImage);
        FileUtils.copyFile(image, new File(finalImage));

1 个答案:

答案 0 :(得分:0)

日期转换将按预期工作,请尝试仅执行以下代码:

DateFormat formate = new SimpleDateFormat("MMM d yyyy hh:mm:ss");
        Date date = new Date();
        System.out.println(formate.format(date));

您的代码失败的原因是,在转换日期之后,它将转换为例如以下格式:

  

2019年1月25日08:11:21

您正在尝试将其与屏幕快照路径一起添加。

  

String finalImage =(screenShotLocation +   dateFormat.format(localDate)+“ _” + imgName +“。png”);

上面的“ finalmage”值看起来像这样:

  

。\ src \ main \ java \ com \ phpTravels \ screenshots \ 2019年1月25日08:11:21 \ someName.png

按照Windows文件命名规则,文件名中不允许使用冒号(':')运算符。因此,您的代码失败的原因。

有关更多信息,请参考

link