Jak skonwertować DataTime w C#

0

Czy da się skonwertować DateTime w konsoli do int lub do double?
Czy jest to możliwe?

0

;(
Nie Działa

1

Możesz użyć DateTimeOffset pośrednio albo bezpośrednio

long number = new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
long number = DateTimeOffset.Now.ToUnixTimeMilliseconds();
1

Konwersja daty do inta polega na wyciagnieciu liczby sekund jakie uplynely od poczatku roku 1970 do twojej obecnje daty i potem da sie to latwo odtworzyc.

w .net 4.8 masz takie cos: DateTimeOffset.UtcNow.ToUnixTimeSeconds()

w nizszych troche wiecej dlubania:
Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

1

To nie jest możliwe. Na typ long możesz przekonwertować bo wszystko jest upakowane w 8 bajtach ale typu long na double nie da się zawsze przekonwerotwać bezstratnie.

using System;


namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime data = DateTime.Now;
            Console.WriteLine(data);
            long dataL = data.Ticks;

            DateTime data2 = new DateTime(dataL);
            Console.WriteLine(data2);
        }
    }
}
2
            var d = DateTime.Now;
            long l = d.ToBinary();
            Console.WriteLine(l);
            var e = DateTime.FromBinary(l);

1 użytkowników online, w tym zalogowanych: 0, gości: 1