Datetime 如何在salesforce apex代码中将字符串转换为日期时间格式?

Datetime 如何在salesforce apex代码中将字符串转换为日期时间格式?,datetime,salesforce,apex-code,apex,Datetime,Salesforce,Apex Code,Apex,我想改变datetime格式,这样首先我得到了datetime,然后我将它转换成不同格式的字符串。现在我想再次将其转换为日期时间格式,但这会导致错误,日期时间无效。我的代码是: DateTime startDT2 = DateTime.newInstance(selectedDate.addDays(1), initialEndTime); system.debug('select dt2>>>'+ startDT2); **output**=2014-12-09 8:00:0

我想改变datetime格式,这样首先我得到了datetime,然后我将它转换成不同格式的字符串。现在我想再次将其转换为日期时间格式,但这会导致错误,日期时间无效。我的代码是:

DateTime startDT2 = DateTime.newInstance(selectedDate.addDays(1), initialEndTime);
system.debug('select dt2>>>'+ startDT2); **output**=2014-12-09 8:00:00

String myDate = startDT2.format('M/d/yyyy h:mm a'); 
system.debug('select mydate>>>'+ myDate); **output**=12/9/2014 1:00 AM
Datetime dt = Datetime.valueOf(myDate);
system.debug('date_string >>>'+ dt);    **output**=invalid date/time 
如何解决我的问题?

来自以下文档:

指定的字符串应使用标准日期格式“yyyy-MM-dd” HH:mm:ss“在本地时区


您不能使用
2014年9月12日凌晨1:00
字符串并将其转换为日期时间。

如果用户区域设置为英语(美国),则可以使用以下方法:

根据本地时区中的字符串Datetime和用户区域设置的格式构造Datetime

示例
本例使用parse从作为字符串传入的日期创建Datetime,该日期的格式为英语(美国)语言环境。如果您有不同的区域设置,则可能需要更改日期字符串的格式

Datetime dt = DateTime.parse('10/14/2011 11:46 AM');
String myDtString = dt.format();
system.assertEquals(myDtString, '10/14/2011 11:46 AM');
顺便说一句,该网站是询问Salesforce特定问题的好地方