不建议使用构造函数Date(String)

Muk*_*ran 2 java cookies webdriver deprecated selenium-webdriver

众所周知的弃用问题导致我出现问题.以下行"到期=新日期(dt);" 是目标脚本.详细解释我成功习惯了

Date expiry = null;
String dt;
if(!(dt=str.nextToken()).equals("null"));
{
  expiry = new Date(dt);
}
Run Code Online (Sandbox Code Playgroud)

在scrips中使用这些行来从文件中读取cookie.是的,"日期"已弃用.我已经阅读了一些解决方案,但在纠正错误时仍然存在一系列错误.

什么是正确的"日期".我也在下面提供完整的脚本

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import java.util.StringTokenizer;

import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Reader {

public static void main(String[] args) {
System.setProperty ("webdriver.chrome.driver", "D:\\Selenium\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.gmail.com");

try{
    File f = new File("browser.data");
    FileReader fr = new FileReader(f);
    BufferedReader br = new BufferedReader(fr);
String line;

while ((line = br.readLine())!=null){
StringTokenizer str = new StringTokenizer (line, ";");

while (str.hasMoreTokens()) {


    String name = str.nextToken();
    String value = str.nextToken();
    String domain = str.nextToken();
    String path = str.nextToken();

    Date expiry = null;
    String dt;

    if(!(dt=str.nextToken()).equals("null"));
    {
        expiry = new Date(dt);
    }

    boolean isSecure = new Boolean(str.nextToken()).booleanValue();

    Cookie ck = new Cookie (name,value,domain,path,expiry,isSecure);

    driver.manage().addCookie(ck);
    br.close();
}

}
}

catch (Exception ex)
{
    ex.printStackTrace();
}

driver.get("http://gmail.com");



}
}
Run Code Online (Sandbox Code Playgroud)

Pri*_*esh 13

不推荐使用的方法的javadoc通常会告诉您替换方法的内容.在这种情况下,https : //docs.oracle.com/javase/7/docs/api/java/util/Date.html上的Date(String)的javadoc 提到了以下内容:

已过时.从JDK version 1.1开始,由DateFormat.parse(String s)取代.

因此,如果您使用的是默认日期格式,则可以使用以下内容替换日期构造代码;

expiry = java.text.DateFormat.getDateInstance().parse(dt);
Run Code Online (Sandbox Code Playgroud)

如果您有自定义日期格式,则必须使用java.text.SimpleDateFormat类而不是java.text.DateFormat.

.


Con*_*tin 5

处理日期字符串的一种方法是这样的:

String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

String yourDateString = "2015-01-01 12:00:00";
DateFormat formatter = new SimpleDateFormat(DEFAULT_PATTERN);
Date myDate = formatter.parse(yourDateString);
Run Code Online (Sandbox Code Playgroud)