2014-12-10 2 views
0

У меня есть различные Date экземпляры в моей программе Java. Работа с болью, но она необходима.Использование даты в Java

Date today = new Date(); // Wed Dec 10 14:10:29 EST 2014 

Date a = new GregorianCalendar(2014, 11, 10).getTime(); 
Date b = new GregorianCalendar(2015, 01, 10).getTime(); 
Date c = new GregorianCalendar(2015, 02, 10).getTime(); 
Date d = new GregorianCalendar(2015, 03, 10).getTime(); //Fri April 10 00:00:00 EDT 2015 
Date e = new GregorianCalendar(2015, 11 ,10).getTime(); 

Мне нужно, чтобы выяснить, как сбрить время (14:10:29) от каждого, а также конвертировать их в время по Гринвичу.

Я знаю, что today.getTime(); будет насчитывать миллисекунды с 1 января 1970 года, 00:00:00 по Гринвичу, но я не уверен, как представить это с учетом времени.

Это было бы проще сравнивать даты. Благодарю.

+1

Вы не можете сделать 'Познакомься с = новый GregorianCalendar (...)' ', потому что date' не супертипом' GregorianCalendar'. – Jesper

+1

Кроме того, месяцы «Calendar» основаны на 0, поэтому 0 = январь, 1 = февраль, ..., 11 = декабрь. И целые литералы, начинающиеся с 0, такие как '01',' 02', интерпретируются как восьмеричные, что не то, что вы хотите. – Jesper

+0

@Jesper GregorianCalendar, кажется, отлично работает с вычислениями, которые я сейчас использую в дополнение к датам – BarryDale2014

ответ

0

Все, что вам нужно сделать, это установить длительное значение модуля на длинное значение 1 день и вычесть его за длительное значение вашей даты.

Если Ср Дек 10 14:10:29 EST 2014, а затем, если вы

Date today = new Date(); // Wed Dec 10 14:10:29 EST 2014 
long timeDiff = today.getTime() % 24 * 60 * 60 * 1000; 
today = new Date(today.getTime - timeDiff); 

Новый объект сегодня будет создан с временем суток удалены.

Чтобы преобразовать их в GMT, вы также можете создать новые даты для longs. Это, очевидно, способ «Даты». Лучшим способом было бы использовать Календарь.

0

попробовать использовать дату formater

SimpleDateFormat df= new SimpleDateFormat("HH:MM:ss"); 
df.format(date)