将转换日期中的错误转换为时间戳?

时间:2017-03-25 09:17:54

标签: android datetime timestamp

我想将日期转换为时间戳,但收到如下错误。

我如何获得时间戳?

我正在获得日,月,年,并希望转换为时间戳,但会收到错误。

代码: -

 String dob1=year+"-"+month+"-"+day;
      DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
                    Date date = null;
                    try {
                        date = (Date)formatter.parse(dob1);
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    String dob= String.valueOf(date.getTime());
                    System.out.println("Today is " +date.getTime());

错误: -

W/System.err: java.text.ParseException: Unparseable date: "1903-MAR-1"
    W/System.err:     at android.icu.text.DateFormat.parse(DateFormat.java:651)
    W/System.err:     at com.a98fit.neeraj.a98fit.Age$4.onClick(Age.java:154)
    W/System.err:     at android.view.View.performClick(View.java:5612)
    W/System.err:     at android.view.View$PerformClick.run(View.java:22285)
    W/System.err:     at android.os.Handler.handleCallback(Handler.java:751)
    W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
    W/System.err:     at android.os.Looper.loop(Looper.java:154)
    W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6123)
    W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
    W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
    W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
    D/AndroidRuntime: Shutting down VM
    E/AndroidRuntime: FATAL EXCEPTION: main
                      Process: com.a98fit.neeraj.a98fit, PID: 31261
                      java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
                          at com.a98fit.neeraj.a98fit.Age$4.onClick(Age.java:158)
                          at android.view.View.performClick(View.java:5612)
                          at android.view.View$PerformClick.run(View.java:22285)
                          at android.os.Handler.handleCallback(Handler.java:751)
                          at android.os.Handler.dispatchMessage(Handler.java:95)
                          at android.os.Looper.loop(Looper.java:154)
                          at android.app.ActivityThread.main(ActivityThread.java:6123)
                          at java.lang.reflect.Method.invoke(Native Method)
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

2 个答案:

答案 0 :(得分:0)

将日期字符串与SimpleDateFormat模式匹配

使用它:

String your_Date="1903-Mar-1";

DateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd");
Date date = null;
try {
    date = (Date)formatter.parse(dob1);
    String dob= String.valueOf(date.getTime());
    System.out.println("TimeStamp: " +date.getTime());
} catch (ParseException e) {
    e.printStackTrace();
}

了解更多关于SimpleDateFormat浏览This

答案 1 :(得分:0)

可能每个人都在这个日期格式中遇到问题。所以,我的解决方案已经完成了joda-time库

.. here  您也可以使用这些问题。 SimpleDateFormat在转换ISO模式时遇到问题。我使用这个解决方案。我不知道为什么。