2010-04-26 100 views
7

Time.ToString("0.0")显示为十进制“1.5”而不是1:30。我怎样才能让它以时间格式显示?将时间转换为C#中的格式化字符串

private void xTripSeventyMilesRadioButton_CheckedChanged(object sender, EventArgs e) 
{ 
    //calculation for the estimated time label 
    Time = Miles/SeventyMph; 
    this.xTripEstimateLabel.Visible = true; 
    this.xTripEstimateLabel.Text = "Driving at this speed the estimated travel time in hours is: " + Time.ToString("0.0") + " hrs"; 
} 
+0

什么类型是时间? 它是浮动的吗? – 2010-04-26 21:14:37

回答

25
Time.ToString("hh:mm") 

格式:

HH:mm = 01:22 
hh:mm tt = 01:22 AM 
H:mm = 1:22 
h:mm tt = 1:22 AM 
HH:mm:ss = 01:22:45 

编辑:既然现在我们知道的时间是double变化的代码(假设你想要小时和分钟):

// This will handle over 24 hours 
TimeSpan ts= System.TimeSpan.FromHours(Time); 
string.Format("{0}:{1}", System.Math.Truncate(ts.TotalHours).ToString(), ts.Minutes.ToString()); 

// Keep in mind this could be bad if you go over 24 hours 
DateTime.MinValue.AddHours(Time).ToString("H:mm"); 
+0

工作就像一个魅力感谢 – 2010-04-26 21:42:41

+0

如果这是正确的答案,请将其标记为:) – Kelsey 2010-04-26 22:04:05

+0

这也适用于我,虽然我会补充说,当做.ToString(),或者CultureInfo时传递文化是一个很好的做法。 InvariantCulture或CultureInfo.CurrentCulture(Microsoft FxCop也建议这样做) – mattytommo 2011-11-17 13:29:44

2

如果TimeSystem.Double,然后System.TimeSpan.FromHours(Time).ToString();

+0

(System.TimeSpan.FromHours(Time ).ToString())非常感谢,但我怎么才能连接字符串出只把8:30而不是00:00:00.00000 – 2010-04-26 21:31:01

+0

string.Format(“{0:HH:mm}”,DateTime.MinValue + TimeSpan .FromHours(Time)) – Jono 2010-04-26 21:39:23

+0

如果你想知道,其他用户提出的更优雅的方法是.NET 4.0的新增功能 – Jono 2010-04-26 21:47:36

0

如果时间是float或double你得。 System.Math.Truncate(Time)获取小时数

然后(Time - System.Math.Truncate(Time))* 60 获取分钟数。

+0

是的,它是一个双重的,但我是C#和编程的新手,这是我的请在课堂上进行第二次作业,请您详细说明如何使用该功能。我会做点工作,只是需要方向。 – 2010-04-26 21:22:43

1

请注意,如果您在24小时内工作,使用HH:mm而非hh:mm非常重要。

有时我错误地写hh:mm,然后而不是“13:45”我得到“01:45”,并且无法知道它是AM还是PM(除非使用tt)。

0

感谢所有的回复家伙和女友我使用这个DateTime.MinValue.AddHours(Time).ToString("H:mm");为我的程序,因为它是最容易实现的。

0

从你的数值变量创建一个时间跨度:

TimeSpan ts = new TimeSpan(Math.Floor(Time), (Time - Math.Floor(Time))*60); 

然后,使用ToString方法。

相关问题