C# 如何设置日期时间值的时区(或种类)?
我的意思是将严格的UTC时间存储在DateTime变量中,并以ISO8601格式输出 最后我使用了.ToString(“yyyy-MM-ddTHH:MM:sszzz”),它发现时区是UTC+01:00 我尝试使用.Kind=DateTimeKind.Utc,但它说Kind属性没有setterC# 如何设置日期时间值的时区(或种类)?,c#,.net,datetime,timezone,C#,.net,Datetime,Timezone,我的意思是将严格的UTC时间存储在DateTime变量中,并以ISO8601格式输出 最后我使用了.ToString(“yyyy-MM-ddTHH:MM:sszzz”),它发现时区是UTC+01:00 我尝试使用.Kind=DateTimeKind.Utc,但它说Kind属性没有setter 如何明确指定时间以UTC为单位?Kind属性是如何设置的?当DateTime.Kind属性没有设置器时,静态方法使用指定的Kind值创建DateTime实例 另外,也有一些采用DateTimeKind参数的
如何明确指定时间以UTC为单位?Kind属性是如何设置的?当DateTime.Kind属性没有设置器时,静态方法使用指定的Kind值创建DateTime实例
另外,也有一些采用DateTimeKind参数的方法如果您想利用本地机器时区,可以使用
myDateTime.ToUniversalTime()
从本地时间获取UTC时间,或者使用myDateTime.ToLocalTime()
将UTC时间转换为本地机器的时间
// convert UTC time from the database to the machine's time
DateTime databaseUtcTime = new DateTime(2011,6,5,10,15,00);
var localTime = databaseUtcTime.ToLocalTime();
// convert local time to UTC for database save
var databaseUtcTime = localTime.ToUniversalTime();
如果需要将时间从/转换到其他时区,可以使用TimeZoneInfo.ConvertTime()
或TimeZoneInfo.ConvertTimeFromUtc()
您也可以尝试一下,它很容易实现
TimeZone time2 = TimeZone.CurrentTimeZone;
DateTime test = time2.ToUniversalTime(DateTime.Now);
var singapore = TimeZoneInfo.FindSystemTimeZoneById("Singapore Standard Time");
var singaporetime = TimeZoneInfo.ConvertTimeFromUtc(test, singapore);
更改要更改的标准时间的文本
使用C的
时区
功能来实现。日期时间类仅包含本地、未指定和UTC。我可能不可能使用一个特定的时区。@hardywang如果您只需要指定一个时间和UTC的偏移量,那么您可以使用。如果您真的需要确定一个特定的时区,那么您需要将DateTime与。请参阅以进行讨论。
TimeZone time2 = TimeZone.CurrentTimeZone;
DateTime test = time2.ToUniversalTime(DateTime.Now);
var singapore = TimeZoneInfo.FindSystemTimeZoneById("Singapore Standard Time");
var singaporetime = TimeZoneInfo.ConvertTimeFromUtc(test, singapore);