Android SimpleDateFormat и будущие даты - PullRequest
0 голосов
/ 21 декабря 2011
long time = 1342580400; //This should be GMT: Wed, 18 Jul 2012 03:00:00 GMT
Date date = new Date(time);
SimpleDateFormat dateSdf = new SimpleDateFormat("dd MMM");
String strTime = dateSdf.format(date);
System.out.println(strTime); //This gives me 16 Jan instead.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

Если вы запустите следующий код:

  SimpleDateFormat dateSdf = new SimpleDateFormat("dd MMM yyyy hh:mm:ss Z");
  Date d = dateSdf.parse("18 Jul 2012 03:00:00 GMT");
  System.out.println(d.getTime());

Вы получите вывод: 1342580400000

Итак, ваша проблема в том, что вы пропустили несколько цифр.

1 голос
/ 21 декабря 2011

Кажется, ваш ручной расчет даты и времени неверен.Я попробовал следующий код:

long currTime = System.currentTimeMillis();

    Date date = new Date(currTime);
    SimpleDateFormat dateSdf = new SimpleDateFormat("dd MMM");
    String strTime = dateSdf.format(date);
    System.out.println(strTime); 

И он дал мне правильную дату, а именно 21 декабря

1 голос
/ 21 декабря 2011
 Date dt = new Date();

            // Fri Dec 02 17:23:13 GMT+05:30 2011

            DateFormat gmtFormat = new SimpleDateFormat();
            TimeZone gmtTime = TimeZone.getTimeZone("GMT");
            gmtFormat.setTimeZone(gmtTime);
            gmtFormat.format(dt);
            Calendar new_c = gmtFormat.getCalendar();

            int hours = new_c.get(Calendar.HOUR_OF_DAY);
            int minutes = new_c.get(Calendar.MINUTE);
            int seconds = new_c.get(Calendar.SECOND);

            mYear = new_c.get(Calendar.YEAR);
            MMonth = new_c.get(Calendar.MONTH);
            mDay = new_c.get(Calendar.DAY_OF_MONTH);
            new_c.setTimeZone(tz);

            MMonth = MMonth + 1;

            String curdate = mDay + "-" + MMonth + "-" + mYear;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...