我在数据库中从字符串变量中获取员工的帐户到期日期,并且此字符串变量中的值的格式为: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();
答案 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