3

我想找到加拿大安大略省的当前日期时间值。我使用了以下代码,但它不起作用:

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。谁能告诉我犯了什么错误并在需要时纠正。

4

1 回答 1

3

您的格式字符串不正确

尝试yyyyMMdd

如果您需要将日期时间转换回字符串

DateTime date = DateTime.ParseExact("20130930","yyyyMMdd",System.Globalization.CultureInfo.CreateSpecificCulture("en-CA"));
string result =  date.ToString("yyyyMMdd",  System.Globalization.CultureInfo.InvariantCulture);

在 DateTime 格式MM中是几个月,mm是几分钟

自定义日期和时间格式字符串

您可以将当前时间转换为 UTC,然后使用该方法查找加拿大的日期时间ConvertTimeFromUtc,但您需要知道TimeZoneId这将对您有所帮助

var result =   TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(),
                TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time"));
于 2013-09-30T11:26:09.860 回答