用另一种格式转换DateTime

问题描述:

我有一个对象,它的一个属性是DateTime DateofBirth。我得到这个对象,并希望改变用另一种格式转换DateTime

{1978年8月16日12:00:00 AM}

{16/8/1978 12:00: 00 AM}

DateTime? tmp = externalConsumerProfile.DateOfBirth; 
string s=DateTime.ParseExact(tmp.ToString(), "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy hh:mm:ss tt") ; 

但我有一个错误,当尝试转换

类型的异常“System.FormatException”出现在mscorlib.dll 但在用户代码中没有处理

更多信息:字符串未被识别为有效的DateTime。

当我尝试tmp.ToString("dd/MM/yyyy hh:mm:ss tt") z具有错误

的方法ToString

+0

你有一个'DateTime'对象,然后尝试解析它作为一个'DateTime'对象 – Jonesopolis

+0

'Parse'一个'string'转换为'DateTime'。 'tmp'已经是'DateTime'了,你不需要把它做成一个。只是格式化它。 'var s = tmp.ToString(“MM/dd/yyyy hh:mm:ss tt”);' –

+0

[C#DateTime to“YYYYMMDDHHMMSS”format]可能重复(http://stackoverflow.com/questions/3025361/ c-sharp-datetime-to-yyyymmddhhmmss-format) – Kiogara

没有重载所有你需要做的是格式的日期时间值。你不需要解析它。

DateTime? tmp = externalConsumerProfile.DateOfBirth; 
string s=tmp.HasValue() ? tmp.Value.ToString("dd/MM/yyyy hh:mm:ss tt") : string.Empty; 
+0

方法ToString没有重载 –

+0

@Евгенийfixed'ToString' 。谢谢! – wdosanjos

+0

非常感谢你! –