将字符串转换为日期时间格式dd-MMM-yyyy问题

时间:2016-05-12 06:39:53

标签: c# asp.net

我在数据库中从字符串变量中获取员工的帐户到期日期,并且此字符串变量中的值的格式为:2016年6月26日上午9:14:03。现在我希望这个格式转换成dd-mmm-yyyy hh:mm:ss am / pm。我怎么能解决这个问题。

我尝试了以下代码:

 DateTime passexpiredate = DateTime.ParseExact(app_user.GetPasswordExpiry(empCode), "dd-MMM-yyy hh:mm tt", null);
  lblPassExpiry.InnerText = "Password Expiry Date: "+passexpiredate.ToString();

4 个答案:

答案 0 :(得分:2)

生活就是轻松使用DateTime.ParseExact

DateTime.ParseExact("12/02/21 10:56:09 AM", "yy/MM/dd HH:mm:ss tt", CultureInfo.InvariantCulture).ToString("dd-MMM-yyyy HH:mm:ss tt");

答案 1 :(得分:1)

您必须按照ToString()方法传递所需的日期时间格式,如下所述:

DateTime passexpiredate = DateTime.Parse(app_user.GetPasswordExpiry(empCode));
lblPassExpiry.InnerText = "Password Expiry Date: " + passexpiredate.ToString("dd-MMM-yyy hh:mm tt"); 

答案 2 :(得分:1)

你需要从字符串6/26/2016 9:14:03 AM制作DateTime。然后将其格式化为dd-mmm-yyyy hh:mm:ss am / pm

答案 3 :(得分:1)

DateTime.ParseExact要求您指定格式与日期时间值的字符串表示形式完全匹配。所以这对你的案子不起作用。

您必须先将字符串转换为DateTime实例,然后在显示时将其格式化。

string date = "6/26/2016 9:14:03 AM";
var dt = DateTime.Parse(date);
var dtStr = dt.ToString("dd-mmm-yyyy hh:mm:ss tt");
Console.WriteLine(dtStr); // Output: 26-14-2016 09:14:03 AM