Czy da się skonwertować DateTime w konsoli do int lub do double?
Czy jest to możliwe?
Jak skonwertować DataTime w C#
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Polska
- Postów: 88
0
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 1114
1
Możesz użyć DateTimeOffset pośrednio albo bezpośrednio
long number = new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
long number = DateTimeOffset.Now.ToUnixTimeMilliseconds();
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Dąbrowa Górnicza
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;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 273
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);
}
}
}
- Rejestracja: dni
- Ostatnio: dni
2
var d = DateTime.Now;
long l = d.ToBinary();
Console.WriteLine(l);
var e = DateTime.FromBinary(l);