Jayson Tamayo
Jayson Tamayo

Reputation: 2811

Incorrect UNIX timestamp from String Date

I am trying to convert a date in String format into UNIX timestamp, I am able to convert it but when I check the timestamp it displays incorrect date.

I am using the following code to convert a Date in String to Unix timestamp:

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;

The output UNIX timestamp is: 1460309640

But when I convert that timestamp using a web tool it returns: 4/11/2016, 1:34:00 AM

Upvotes: 3

Views: 234

Answers (1)

Davide Lorenzo MARINO
Davide Lorenzo MARINO

Reputation: 26926

The format

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

is not compatible with the string

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

16 can't be a month!

2015 is not a year in two digits format

The right format seems to be (not sure if kk or KK depending on hours if 0 based or not)

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

Upvotes: 5

Related Questions