2011-07-01 17 views

Odpowiedz

9

Wartość DateTime definiuje konkretną datę i godzinę, zawiera właściwość Kind, która dostarcza ograniczonych informacji o strefie czasowej, do której należy ta data i godzina.

Struktura DateTimeOffset reprezentuje wartość daty i godziny, wraz z przesunięciem wskazującym wartość różną od UTC. W ten sposób wartość zawsze jednoznacznie identyfikuje jeden punkt w czasie.

DateTimeOffset należy uznać za domyślny typ daty i czasu opracowywania aplikacji, ponieważ zastosowania dla wartości DateTimeOffset są znacznie częstsze niż w przypadku wartości DateTime.

Zobacz więcej informacji, przykłady kodu na stronie: http://msdn.microsoft.com/en-us/library/bb384267.aspx

+1

http://msdn.microsoft.com/en-us/library/system.datetime .kind.aspx –

2

Istnieje kilka kwestii tutaj:

DateTime informacje powinny być zapisane w formacie UTC w bazie danych:

http://www.4guysfromrolla.com/articles/081507-1.aspx

Podczas korzystania z informacji o DateTime w aplikacji internetowej należy przekonwertować go na LocalTime:

DateTime.UtcNow.ToLocalTime(); 

skonwertuje go na czas lokalny z perspektywy serwera WWW.

Jeśli masz serwer WWW w jednym miejscu, obsługujących klientów w wielu krajach, a następnie trzeba będzie wykonać tę operację w javascript na kliencie samego:

myUTCDate.toLocaleTimeString(); 

http://www.java2s.com/Code/JavaScript/Date-Time/ConvertDatetoLocaleString.htm

3

datetimeoffset reprezentuje datetime jako datetime UTC.

Więc

DateTimeOffset dtoNow = DateTimeOffset.Now; 

jest taka sama jak

DateTimeOffset dtoUTCNow = DateTimeOffset.UTCNow; 

Tutaj dtoNow będzie równa dtoUTCNow chociaż jeden został inicjowany DateTimeOffset.Now a druga została zainicjowana do DateTimeOffset.UTCNow;

A więc DatetimeOffset jest dobry do przechowywania różnicy lub Offset w.r.t UTC.

Aby uzyskać więcej informacji, patrz MSDN.