Я бы настоятельно рекомендовал не писать какой-либо анализатор и средство записи самостоятельно, а полагаться на существующие библиотеки и стандарты. Поскольку вы хотите записывать / читать в / из файла XML, я настоятельно рекомендую использовать стандарт для даты и времени: ISO 8601 .
Java
Вы можете использовать Joda Time , библиотеку, которая поддерживает ISO 8601. Формат weekDateTimeNoMillis
(см. doc ) предоставляет все, что вам нужно, если вы хотите сохранить возможность в конечном итоге хранить время тоже:
- Дата
- Время
- Часовой пояс («Z» для UTC или +/- ЧЧ: ММ для другого часового пояса).
date
(см. документ ) может быть правильным, если вы не хотите хранить информацию о времени. Он имеет формат yyyy-MM-dd
(обратите внимание: если вы выполните алгоритм сортировки строк, он будет отсортирован правильно по дате)
C #:
.NET Framework уже предоставляет средство записи и синтаксического анализа ISO 8601: DateTime.UtcNow.ToString("s")
запишет правильный формат yyyy-MM-ddTHH:mm:ss
.
Видите ли, вам просто нужно выбрать формат (только дата, дата-время или дата-время с часовым поясом) и использовать соответствующие инструменты на обоих языках, и все будет хорошо. Если вы не укажете формат точно, могут произойти странные вещи: вы не сможете узнать 10-09-08
, не зная его формата, это:
- 9 августа 2010
- 8 сентября 2010
- 10 сентября 2008
- 9 октября 2008
- ...?
Вы / парсер просто не можете знать.