Вы могли вручную заменить значение (argument.Replace(' ', '+')
) или консультироваться HttpRequest.ServerVariables["QUERY_STRING"]
(еще лучше HttpRequest. URL. Запрос) и синтаксический анализ это самостоятельно.
необходимо однако попытаться решить проблему, где URL дан; знак "плюс" должен быть закодирован как "%2B" в URL, потому что плюс иначе представляет пространство.
, Если бы Вы не управляете входящими URL, первая опция была бы предпочтена, поскольку Вы избегаете большинства ошибок этот путь.
Хорошо, я знаю, что это предсказуемый ответ, но ... используйте Джода Тайм . У этого есть отдельные представления для «даты», «момента», «времени суток» и т. Д. Это более богатый API и в целом более разумный, чем встроенные классы, IMO.
Если это ] только бит манипуляции с датой / временем, который вас интересует, тогда это может быть излишним ... но если вы используете встроенный API даты / времени для чего-то значительного, я бы сильно рекомендуют вам как можно скорее перейти от него к Joda.
Кроме того, вы должны подумать о том, какой часовой пояс вас интересует. Календарь
имеет связанный часовой пояс. , но Дата
не
Вы можете вызвать функцию getTimeInMillis () для объекта Calendar чтобы получить время в миллисекундах. Вы можете вызвать get (Calendar.MILLISECOND) для объекта календаря, чтобы получить миллисекунды секунды. Если вы хотите отображать время из объекта Date или Calendar, используйте класс DateFormat. Пример: DateFormat.getTimeInstance (). Format (сейчас). Также можно использовать класс SimpleDateFormat.
Почему вы хотите их разделить? Если вы собираетесь произвести какие-либо арифметические действия с временной частью, у вас быстро возникнут проблемы. Если вы вытащите 23:59 и добавите минуту, теперь, когда ваше время и день разделены, вы напортачили - у вас будет неправильное время и неправильная дата.
Если вы просто хотите их отобразить , то применение различных простых форматов даты должно дать вам именно то, что вы хотите.
Если вы хотите манипулировать датой, я предлагаю вам получить длинные значения и основывать все на этом. В любой момент вы можете потратить так много времени и применить формат, чтобы довольно легко отображать минуты / часы / секунды.
Но меня немного беспокоит концепция управления днем и временем по отдельности, похоже, открытие можно червей. (Не говоря уже о проблемах с часовыми поясами!)
I '
Для извлечения временной части дня нужно получить оставшееся количество миллисекунд при делении на количество миллисекунд в день.
long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
Date now = Calendar.getInstance().getTime();
long timePortion = now.getTime() % MILLIS_PER_DAY;
В качестве альтернативы, рассмотрите возможность использования joda-time, более полнофункциональная библиотека времени.
Чтобы ответить на его часть, доступ к миллисекундному компоненту осуществляется следующим образом:
long mill = Calendar.getInstance().getTime();
Я не знаю, что вы хотите сделать с конкретными деталями, но вы можете использовать java.text .SimpleDateFormat, если он предназначен для вывода текста.
Если все, о чем вы беспокоитесь, - это поместить его в строку для отображения или сохранения, просто создайте SimpleDateFormat, который отображает только временную часть, например new SimpleDateFormat ("HH: mm: ss "). Дата, конечно же, все еще находится в объекте Date, но вам все равно.
Если вы хотите произвести с ней арифметические операции, например, взять два объекта Date и определить, сколько секунд между ними, игнорируя часть даты, так что «2009-09-01 11:00:00» минус «1941-12-07 09:00:00» равняется 2 часам, тогда я думаю, вам нужно использовать такое решение, как у Jherico: потратьте много времени и возьмите его модуль 1 день.