我想查找加拿大安大略省的当前日期时间值。我使用了以下代码,但它不起作用:
DateTime date = DateTime.ParseExact("20130930","yyyymmdd",System.Globalization.CultureInfo.CreateSpecificCulture("en-CA"));
20130930
是今天的日期,即2013-09-30。我希望输出为yyyymmdd格式。我也尝试过:
DateTime date = DateTime.ParseExact("20130930","yyyymmdd",System.Globalization.CultureInfo.CreateSpecificCulture("FR-CA"));
但它会将结果显示为30-01-2013 00:09:00
。任何人都可以告诉我犯了什么错误,并在需要时纠正。
答案 0 :(得分:2)
您的格式字符串不正确
尝试使用yyyyMMdd
如果您需要将日期时间转换回字符串
DateTime date = DateTime.ParseExact("20130930","yyyyMMdd",System.Globalization.CultureInfo.CreateSpecificCulture("en-CA"));
string result = date.ToString("yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
日期时格格式MM
为数月,mm
为分钟
Custom Date and Time Format Strings
您可以将当前时间转换为UTC,然后使用该方法使用ConvertTimeFromUtc
方法查找加拿大的日期时间,但您需要知道TimeZoneId
(this will help you)
var result = TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(),
TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time"));