Как добиться временного преобразования Струкновения?
-
24-09-2019 - |
Вопрос
Я попробовал поиск здесь, но это не могло бы мне помочь ..
я бы хотел конвертировать time_span в string, я не хочу возвращать Timeespan в дни. Но только HH: MM: SS. Как это добиться?
Мой образец код здесь:
String time_span_par = "06:12:40";
String time_str = "18:13:59";
TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
TimeSpan time_span = TimeSpan.Parse(time_str);
time_span = time_span.Add(time_span_var);
string temp = time_span.ToString("HH:mm:ss");
Решение
Попробуйте использовать
DateTime d = new DateTime(time_span.Ticks);
string time = d.ToString("HH:mm:ss");
Другие советы
Это должно работать:
string temp = string.Format("{0}:{1}:{2}",
time_span.Hours.ToString(), time_span.Minutes.ToString(),
time_span.Seconds.ToString());
Согласно комментарию, если вы хотите использовать двойные цифры:
string temp = string.Format("{0}:{1}:{2}",
time_span.Hours.ToString("00"), time_span.Minutes.ToString("00"),
time_span.Seconds.ToString("00"));
Отредактировано: согласно комментарию Джимми,
string temp = string.Format("{0:00}:{1:00}:{2:00}",time_span.Hours, time_span.Minutes, time_span.Seconds);
Попробуй это:
time_span = time_span.Add(time_span_var);
string temp = time_span.ToString();
temp = string.Format("{0}:{1}:{2}", time_span.TotalHours, time_span.TotalMinutes, time_span.TotalSeconds);
РедактироватьПосле того, как я прочитал ваш комментарий на свой вопрос, то есть вам нужно отображать нулевые часы на новые дни, мой ответ даст вам общие часы, минуты и секунды, а не то, что вы хотите.
(+1) Келси;)
Код, который я реализовал:
string temp = DateTime.Today.Add(time_span).ToString("HH:mm:ss");
Первоначально опубликовано Marc Gravell.,
Существует гораздо более простой способ сделать это сейчас (хотя и использовать Framework 4), вам просто нужно использовать строку буквально, и вы можете сделать это непосредственно на экземпляре Timespan.
time_span.ToString(@"hh\:mm\:ss")
Это будет выпущено
00:26:39
Полезно сейчас для людей, спотыкающихся через это (как я).
Ваше здоровье :)
Просто преобразуйте значение галочек в DateTime, а затем используйте его TOSTRING ()
var date1 = DateTime.Now;
var date2 = DateTime.Now.AddSeconds( -1000 );
var diff = date1 - date2;
var temp = new DateTime( diff.Ticks ).ToString( "HH:mm:ss" )
String time_span_par = "06:12:40";
String time_str = "18:13:59";
TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
TimeSpan time_span = TimeSpan.Parse(time_str);
TimeSpan finalTime = (time_span_var + time_span);
Console.WriteLine(finalTime);
Console.WriteLine(finalTime - TimeSpan.FromHours(finalTime.Days * 24));
Если количество дней не имеет значения, то у вас есть решение, однако я наткнулся на этот ответ, ищет преобразование, которое дало часы, так что 36 часов нужно будет отображаться как 36:00:00. Использование некоторых намеков выше это то, что я придумал:
SomeLabel.Text = Math.Floor(ts.TotalHours).ToString() + ":" + ts.Minutes.ToString("D2") + ":" + ts.Seconds.ToString("D2");
Общие часы всегда округляются, минуты и секунды дополняются как 2 цифры (00 - 09)