概述
DateTime和DateTimeOffset
static void Main(string[] args) { Console.WriteLine(DateTime.Now); Console.WriteLine(DateTimeOffset.Now); }
static void Main(string[] args) { DateTime dateA = new DateTime(2008,8,26,23,1,48); DateTimeOffset dateB = new DateTimeOffset(2008, 8, 26, 23, 1, 48, new TimeSpan(4,0,0)); Console.WriteLine(dateA); Console.WriteLine(dateB); }
轉換DateTime爲DateTimeOffset
public enum DateTimeKind { Unspecified, Utc, Local }
static void Main(string[] args) { DateTime dateA = new DateTime(2008,8,24,23,33,58); DateTime dateB = DateTime.SpecifyKind(dateA, DateTimeKind.Utc); DateTimeOffset dateC = dateB; Console.WriteLine(dateB); Console.WriteLine(dateC); }
static void Main(string[] args) { DateTime dateA = new DateTime(2008, 8, 24, 23, 33, 58); DateTime dateB = DateTime.SpecifyKind(dateA, DateTimeKind.Local); DateTimeOffset dateC = dateB; Console.WriteLine(dateB); Console.WriteLine(dateC); }
static void Main(string[] args) { DateTime dateA = new DateTime(2008, 8, 24, 23, 33, 58); DateTime dateB = DateTime.SpecifyKind(dateA, DateTimeKind.Unspecified); DateTimeOffset dateC = dateB; Console.WriteLine(dateB); Console.WriteLine(dateC); }
public DateTimeOffset(DateTime dateTime) { TimeSpan offset; if (dateTime.Kind != DateTimeKind.Utc) { // Local 和 Unspecified 都轉換爲Local offset = TimeZone.CurrentTimeZone.GetUtcOffset(dateTime); } else { offset = new TimeSpan(0); } m_offsetMinutes = ValidateOffset(offset); m_dateTime = ValidateDate(dateTime, offset); }
轉換DateTimeOffset爲DateTime
public DateTime DateTime { get { return ClockDateTime; } } public DateTime UtcDateTime { get { return DateTime.SpecifyKind(m_dateTime, DateTimeKind.Utc); } } public DateTime LocalDateTime { get { return UtcDateTime.ToLocalTime(); } }
static void Main(string[] args) { DateTimeOffset basic = new DateTimeOffset(2008, 8, 24, 23, 33, 58, new TimeSpan(8,0,0)); DateTime dateA = basic.DateTime; DateTime dateB = basic.LocalDateTime; DateTime dateC = basic.UtcDateTime; Console.WriteLine(basic); Console.WriteLine("--------------------------"); Console.WriteLine("Unspecified DateTime:" + dateA); Console.WriteLine("Local DateTIme:" + dateB); Console.WriteLine("UTC DateTime:" + dateC); }
在DateTime和DateTimeOffset之間選擇
static void Main(string[] args) { DateTime date = DateTime.Now; Console.WriteLine(date); }
時區支持
static void Main(string[] args) { TimeZone timeZoneA = TimeZone.CurrentTimeZone; Console.WriteLine(timeZoneA.StandardName); TimeZoneInfo timeZoneB = TimeZoneInfo.Local; Console.WriteLine(timeZoneB.StandardName); TimeZoneInfo timeZoneC = TimeZoneInfo.Utc; Console.WriteLine(timeZoneC.StandardName); }
static void Main(string[] args) { DateTimeOffset chinaDate = DateTimeOffset.Now; DateTimeOffset easternDate = TimeZoneInfo.ConvertTime( chinaDate, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); Console.WriteLine("Now: {0}", chinaDate); Console.WriteLine("Now in Eastern: {0}", easternDate); }
總結
0
收藏
Ctrl+Enter 發佈
發佈
取消