Я пытаюсь вызвать веб-сервис .Net с Java. У меня есть java.sql.Date, который я преобразовываю в календарь, который затем передается в .Net как DateTime.
К сожалению, когда он попадает на другую сторону, это на день позже отправленной. Это известная проблема согласно (http://wiki.apache.org/ws/FrontPage/Axis/DotNetInterop)), и я уверен, что есть способ обойти ее, но я просто не могу ее найти.
Кто-нибудь знает, как правильно преобразовать java.sql.Date в календарь, чтобы не было проблемы смещения на 24 часа?
Код, который у меня есть на данный момент, следующий:
java.sql.Date myDate = Date.valueOf("2011-04-11");
Calendar calendarDate = Calendar.getInstance();
calendarDate.clear();
calendarDate.setTime(myDate); //we then pass calendarDate off to webservice...
Когда я смотрю информацию о часовом поясе, я вижу следующее:
В Java меня получает «Восточное стандартное время (Новый Южный Уэльс)»:
calendarDate.getTimeZone().getDisplayName();
В .Net меня получает «AUS Eastern Standard Time»:
TimeZone.CurrentTimeZone.StandardName;
Насколько мне известно, и Java, и .Net имеют местное время в одном часовом поясе ...