Получение компонента Времени Даты Java или Календаря

Вы могли вручную заменить значение (argument.Replace(' ', '+')) или консультироваться HttpRequest.ServerVariables["QUERY_STRING"] (еще лучше HttpRequest. URL. Запрос) и синтаксический анализ это самостоятельно.

необходимо однако попытаться решить проблему, где URL дан; знак "плюс" должен быть закодирован как "%2B" в URL, потому что плюс иначе представляет пространство.

, Если бы Вы не управляете входящими URL, первая опция была бы предпочтена, поскольку Вы избегаете большинства ошибок этот путь.

16
задан Matt Ball 1 September 2009 в 17:26
поделиться

6 ответов

Хорошо, я знаю, что это предсказуемый ответ, но ... используйте Джода Тайм . У этого есть отдельные представления для «даты», «момента», «времени суток» и т. Д. Это более богатый API и в целом более разумный, чем встроенные классы, IMO.

Если это ] только бит манипуляции с датой / временем, который вас интересует, тогда это может быть излишним ... но если вы используете встроенный API даты / времени для чего-то значительного, я бы сильно рекомендуют вам как можно скорее перейти от него к Joda.

Кроме того, вы должны подумать о том, какой часовой пояс вас интересует. Календарь имеет связанный часовой пояс. , но Дата не

11
ответ дан 30 November 2019 в 21:37
поделиться

Вы можете вызвать функцию getTimeInMillis () для объекта Calendar чтобы получить время в миллисекундах. Вы можете вызвать get (Calendar.MILLISECOND) для объекта календаря, чтобы получить миллисекунды секунды. Если вы хотите отображать время из объекта Date или Calendar, используйте класс DateFormat. Пример: DateFormat.getTimeInstance (). Format (сейчас). Также можно использовать класс SimpleDateFormat.

1
ответ дан 30 November 2019 в 21:37
поделиться

Почему вы хотите их разделить? Если вы собираетесь произвести какие-либо арифметические действия с временной частью, у вас быстро возникнут проблемы. Если вы вытащите 23:59 и добавите минуту, теперь, когда ваше время и день разделены, вы напортачили - у вас будет неправильное время и неправильная дата.

Если вы просто хотите их отобразить , то применение различных простых форматов даты должно дать вам именно то, что вы хотите.

Если вы хотите манипулировать датой, я предлагаю вам получить длинные значения и основывать все на этом. В любой момент вы можете потратить так много времени и применить формат, чтобы довольно легко отображать минуты / часы / секунды.

Но меня немного беспокоит концепция управления днем ​​и временем по отдельности, похоже, открытие можно червей. (Не говоря уже о проблемах с часовыми поясами!)

I '

0
ответ дан 30 November 2019 в 21:37
поделиться

Для извлечения временной части дня нужно получить оставшееся количество миллисекунд при делении на количество миллисекунд в день.

long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
Date now = Calendar.getInstance().getTime();
long timePortion = now.getTime() % MILLIS_PER_DAY;

В качестве альтернативы, рассмотрите возможность использования joda-time, более полнофункциональная библиотека времени.

9
ответ дан 30 November 2019 в 21:37
поделиться

Чтобы ответить на его часть, доступ к миллисекундному компоненту осуществляется следующим образом:

long mill = Calendar.getInstance().getTime();

Я не знаю, что вы хотите сделать с конкретными деталями, но вы можете использовать java.text .SimpleDateFormat, если он предназначен для вывода текста.

2
ответ дан 30 November 2019 в 21:37
поделиться

Если все, о чем вы беспокоитесь, - это поместить его в строку для отображения или сохранения, просто создайте SimpleDateFormat, который отображает только временную часть, например new SimpleDateFormat ("HH: mm: ss "). Дата, конечно же, все еще находится в объекте Date, но вам все равно.

Если вы хотите произвести с ней арифметические операции, например, взять два объекта Date и определить, сколько секунд между ними, игнорируя часть даты, так что «2009-09-01 11:00:00» минус «1941-12-07 09:00:00» равняется 2 часам, тогда я думаю, вам нужно использовать такое решение, как у Jherico: потратьте много времени и возьмите его модуль 1 день.

0
ответ дан 30 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: