众所周知的弃用问题导致我出现问题。以下行"到期=新日期(dt);"是目标脚本。详细解释我成功使用
Date expiry = null;
String dt;
if(!(dt=str.nextToken()).equals("null"));
{
expiry = new Date(dt);
}
在scrips中使用这些行来读取文件中的cookie。是的,"日期"已弃用。我已经阅读了一些解决方案,但在纠正错误时仍然存在一系列错误。
" date"中的正确代码是什么?我还提供了下面的完整脚本
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");
}
}
答案 0 :(得分:11)
不推荐使用的方法的javadoc通常会告诉您替换方法的内容。在这种情况下,https://docs.oracle.com/javase/7/docs/api/java/util/Date.html处的Date(String)的javadoc提到以下内容:
已过时。从JDK 1.1版开始,替换为 DateFormat.parse(String s)。
因此,如果您使用的是默认日期格式,则可以使用以下内容替换日期构造代码;
expiry = java.text.DateFormat.getDateInstance().parse(dt);
如果您有自定义日期格式,则必须使用 java.text.SimpleDateFormat 类而不是 java.text.DateFormat 。
答案 1 :(得分:1)
处理日期字符串的一种方法是:
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);
答案 2 :(得分:0)
我使用以下脚本进行了更正。感谢所有
if(!(dt).equals("null"))
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd hh:mm:ss");
expiry = sdf.parse(dt);