2013-08-04 2 views

ответ

5

Вопросы, в том, что вы используете неверный формат

System.debug(DateTime.valueOfGmt(('06/08/2013 06:30:22').replaceAll('/','-'))); 

System.debug(DateTime.valueOfGmt(('2013/08/06 06:30:22').replaceAll('/','-'))); 

консольный вывод:

08:19:40:061 USER_DEBUG [3]|DEBUG|0012-02-03 06:30:22 
08:19:40:061 USER_DEBUG [5]|DEBUG|2013-08-06 06:30:22 

, как вы можете видеть из отладки, то первый вариант возвращает неверное значение DateTime.

Official documentation говорит следующее

valueOfGmt Возвращает DATETIME, содержащий значение указанной строки . Строка должна использовать стандартный формат Дата «гггг-мм-дд чч: мм: сс» в часовом поясе GMT ​​

исправить исходную строку даты-времени.

UPDATE

String myDate = '06/08/2013 06:30:22'; 
String stringDate = myDate.substring(6,10) + '-' + 
        myDate.substring(3,5) + '-' + 
        myDate.substring(0,2) + ' ' + 
        myDate.substring(11,19); 
DateTime dt = datetime.valueOf(stringDate); 
System.debug(String.valueOfGmt(dt)); 

журнала: dt|"2013-08-06T03:30:22.000Z"

+0

да, но проблема в том, что я не буду получить строку в «YYYY-MM-DD HH: мм: сс» формат. так что я могу преобразовать строку в формате «mm-dd-yyyy HH: mm: ss» в datetime? – Raj

+0

@RajuRathi посмотрите на обновление в ответ –

+0

попробуйте DateTime.format (string), как описано в https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_datetime.htm#apex_System_Datetime_format_2 –

Смежные вопросы