2013-04-11 47 views
-6

我有这个被输出C#去除字符串的一部分时间

09:19:30.5070000 AM

,但我想这个样子上午九时19分30秒

我如何使用代码在字符串末尾删除这些额外的毫秒数?

被存储在预先time.Text

感谢。

+0

'DateTime'有各种'ToX'方法,包括接受自定义格式字符串'ToString'超载。 'ToShortDate'听起来像你想要的。 – asawyer 2013-04-11 13:33:16

+0

[标准日期和时间格式字符串](http://msdn.microsoft.com/en-gb/library/az4se3k1.aspx) – James 2013-04-11 13:35:12

+0

你从哪里得到时间?约会时间?其他方式? – 2013-04-11 13:35:32

回答

2
string time = "09:19:30.5070000 AM"; 

StringBuilder sb = new StringBuilder(time); 
string final = sb.Remove(8, 8).ToString(); 
+0

谢谢你,它工作得很好。你是唯一理解我的问题的人。不知道为什么我这么多次被拒绝。 – Apollo 2013-04-11 13:47:48

+0

欢迎:)高兴地帮助。 – 2013-04-11 13:50:17

4

DateTime.ToString("T")应该工作,我认为。

+1

并不总是,如果OP预计小时在开始时不管数字是多少,都会有'0' - 这取决于文化,例如'09:19:30 AM'是'9:19:30 AM' in'en- US'。 – James 2013-04-11 13:37:02

0

你可以试试这个,如果它是一个string

string strDate = "09:19:30.5070000 AM"; 
DateTime datDate;   
if (DateTime.TryParseExact(strDate,"hh:mm:ss.fffffff tt", 
    System.Globalization.CultureInfo.InvariantCulture, 
    System.Globalization.DateTimeStyles.None, out datDate)) 
{ 
    //Console.WriteLine(datDate.ToString("hh:mm:ss tt")); 
    time.Text=datDate.ToString("hh:mm:ss tt"); 

}