2

如何在 Java 中调用 DateJS 的 Date.parse()?

这就是我正在使用的:

import javax.script.*;

public class Demo
{
    public static void main(String[] args) throws Exception
    {
        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
        ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("JavaScript");

        scriptEngine.eval(new java.io.FileReader("date.js"));

        System.out.println(scriptEngine.eval("Date.parse(\"3/12/1998\").toString();"));
    }
}

输出:

run:
Thu Mar 12 1998 00:00:00 GMT-0500 (EST)
BUILD SUCCESSFUL (total time: 0 seconds)

有没有更好的方法在 Java 中调用 Date.parse() ?

DateJS: http ://www.datejs.com/

4

2 回答 2

1

SimpleDateFormat这里是矫枉过正。常规DateFormat绰绰有余:

import java.text.DateFormat;

public class Demo
{
    public static void main(String[] args) throws Exception
    {
        System.out.println(DateFormat.getDateInstance(DateFormat.SHORT).parse("3/12/1998").toString());
    }
}

输出Thu Mar 12 00:00:00 EST 1998

当您不知道用户输入的日期格式时,就会出现问题。Java 的通用日期/时间库似乎都没有任何解析这些的方法......至少内置和 JodaTime 没有。

您可能会对PHP's strtotime() in Java问题的接受答案感到幸运

于 2011-04-08T14:30:13.557 回答
1

关于什么:

Date date new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").parse(outputFromFile);

yyyy.MM.dd.HH.mm.ss 是不正确的,模式,它只是一个例子


您可以编写一个日期格式模式列表并尝试解析它们,直到没有出现异常。

于 2011-04-08T14:11:04.750 回答