У меня есть задача взять дату из поля дата и передать в контроллер посредстовам js object или json.То есть проблема в том что дата в javascript берется как string а передовать нужно именно в format дату.Пока вижу только одно решение передать в контрллер string a там уже приводить к дате.Вопрос есть ли какой нибудь способ конвертировать string в javascript к salesforce date на стороне клиента и передовать в контроллер именно дату а не стринг.
мне кажется, что при передаче даты на сервер обычным пост-http или пост-http посредством AJAX любые данные - это просто стринги. 
Возможно вопрос только в форматировании этого стринга, содержащего дату. 
Возможно нужно его отформатировать так, чтобы в контроллере его встретили "как родного". 
Но нужно узнать, а в каком виде контроллер ожидает эту стринг-дату.
Как идея: есть браузерный плагин который позволяет смотреть, что передается через AJAX (подробностей не знаю).
создай ВФ страницу с одним дата полем которое находится в перегружаемой AJAX панели. И посмотри, в каком виде твоя дата ушла аджаксом на сервер.
отформатировать JS стринг в ДатаВремя формат можно и средствами JS, но не известно - подойдет ли этот формат, вероятно форматировать придется в ручную.
http://learn.javascript.ru/datetime
но не знаю поможет ли это все, и в правильном ли направленни идут мои размышления.
По поводу дат. Нужно быть предельно аккуратным с DateTime. Если не задавать никакого формата для даты и вставлять в SOQL (только в строку!!!), то он возьмет в формате с дефолтной (GMT 0.00) таймзоной.
Вот как у меня было:
....
DateTime startDate = DateTime.newInstance(endDate.year(), endDate.month(), endDate.day(), 0, 0, 0);
....
query += ' AND (TestDateTime__c >= ' + startDate.format('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'') ';
....
Вот если так (выше) положить в строку (!!!!) с дефолтным форматом, то вы будете приятно удивлены дате, которую увидите в SOQL. Чтобы брать нужную (корректную) я брал таймзону текущего юзера.
....
DateTime startDate = DateTime.newInstance(endDate.year(), endDate.month(), endDate.day(), 0, 0, 0);
TimeZone tz = UserInfo.getTimeZone();
....
query += ' AND (TestDateTime__c >= ' + startDate.format('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'' , tz.getDisplayName()) ';
....
Ну и не стоит забывать, что на VF page если вывести DateTime, то формат будет GMT +0 00