Mayby это будет работать для вас. Но я думаю, вы не будете использовать это в своем приложении. Проблема в том, что я меняю DefaultTimeZone, поэтому вывод каждой даты будет как «GMT». Я также добавляю смещение между TimeZones, поэтому ваш выход - ваше исходное время с +0000 в конце.
Но имейте ввиду, что это изменит вашу дату. Он добавляет timeoffset к часам и вашей исходной дате, и ваша новая дата не равна.
"2012-10-31T00: 00: 00 + 01: 00" и "2012-10-30T23: 00: 00 + 00: 00" равные даты. Выход зависит от разных часовых поясов.
SimpleDateFormat originalDateParser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date date = originalDateParser.parse("2012-10-31T00:00:00+0100");
System.out.println("Date Input" + originalDateParser.format(date));
Calendar cal = Calendar.getInstance();
cal.setTime(date);
TimeZone timeZoneInputDate = cal.getTimeZone();
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
System.out.println("TimeZone InputDate: " + timeZoneInputDate.getDisplayName());
cal.add(Calendar.MILLISECOND, (int) timeZoneInputDate.getOffset(date.getTime()));
SimpleDateFormat newDateParser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
System.out.println(newDateParser.format(cal.getTime()));
TimeZone.setDefault(null);
Что представляет собой класс объекта? 'Java.util.Date'? – KidTempo
Что вы имеете в виду: _replace «+01: 00» до «+00: 00» _? «+01: 00» означает смещение временной зоны. Обе даты, о которых вы упомянули, представляют собой один и тот же момент времени. –
Да java.util.Date – Safi