Преобразуйте DateTime в TimeSpan

Я хочу преобразовать a DateTime экземпляр в a TimeSpan экземпляр, действительно ли это возможно?

Я озирался, но я не мог найти то, что я хочу, я только нахожу разницу во времени. Строго говоря, я хочу преобразовать a DateTime экземпляр в миллисекунды, чтобы затем сохранить его в IsolatedStorage.

62
задан 2 August 2017 в 18:11

5 ответов

Для преобразования DateTime в TimeSpan, необходимо выбрать основную дату/время - например, полночь от 1-го января 2000, и вычесть ее из Вашего DateTime значение (и добавить его, когда Вы хотите преобразовать назад в DateTime).

, Если Вы просто хотите преобразовать DateTime в число, можно использовать Ticks свойство.

14
ответ дан 31 October 2019 в 13:06

Можно просто использовать свойство TimeOfDay времени даты, которое является типом TimeSpan:

DateTime.TimeOfDay

Это свойство было вокруг начиная с.NET 1.1

[еще 114] информация: http://msdn.microsoft.com/en-us/library/system.datetime.timeofday (v=vs.110) .aspx

186
ответ дан 31 October 2019 в 13:06
TimeSpan.FromTicks(DateTime.Now.Ticks)
18
ответ дан 31 October 2019 в 13:06

Попробуйте следующий код.

 TimeSpan CurrentTime = DateTime.Now.TimeOfDay;

Получают время суток и присваивают его TimeSpan переменная.

6
ответ дан 31 October 2019 в 13:06

В случае, если Вы используете WPF и TimePicker Xceed (который, кажется, использует DateTime?) как средство выбора промежутка - как я делаю прямо сейчас, можно получить общие миллисекунды (или TimeSpan) из него как так:

var milliseconds = DateTimeToTimeSpan(timePicker.Value).TotalMilliseconds;

    TimeSpan DateTimeToTimeSpan(DateTime? ts)
    {
        if (!ts.HasValue) return TimeSpan.Zero;
        else return new TimeSpan(0, ts.Value.Hour, ts.Value.Minute, ts.Value.Second, ts.Value.Millisecond);
    }

XAML:

<Xceed:TimePicker x:Name="timePicker" Format="Custom" FormatString="H'h 'm'm 's's'" />

В противном случае я предполагаю, что Вы могли просто скорректировать мой DateTimeToTimeSpan () так, чтобы также потребовались 'дни' во внимание, или сделайте sth как dateTime.Substract(DateTime.MinValue).TotalMilliseconds.

4
ответ дан 31 October 2019 в 13:06

Другие вопросы по тегам:

Похожие вопросы: