Czy da się skonwertować DateTime w konsoli do int lub do double?
Czy jest to możliwe?
0
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);