字符串日期的UNIX时间戳不正确

时间:2015-11-12 17:39:55

标签: java

我正在尝试将String格式的日期转换为UNIX时间戳,我能够转换它但是当我检查时间戳时它显示错误的日期。

我使用以下代码将String中的Date转换为Unix时间戳:

String selected_date = "16/11/2015 1:34 am";
        datetime.setText(selected_date);
        DateFormat dateFormat = new SimpleDateFormat("MM/dd/yy hh:mm a");
        Date date = null;
        try {
            date = dateFormat.parse(selected_date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long unixTime = (long)date.getTime()/1000;

输出UNIX时间戳为:1460309640

但是当我使用网络工具转换该时间戳时,它会返回:4/11/2016, 1:34:00 AM

1 个答案:

答案 0 :(得分:4)

格式

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yy hh:mm a");

与字符串

不兼容
String selected_date = "16/11/2015 1:34 am";

16不能一个月!

2015年不是两位数格式的一年

正确的格式似乎是(不确定kk或KK是否取决于小时数是否为0)

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy kk:mm a");