从 UTC 时间转换为本地时间

本文关键字:时间 转换 UTC | 更新日期: 2023-09-27 18:35:27

我正在使用Microsoft CRM 2013 SDK进行我正在处理的项目(MS CRM Online)。正如我发现通过 SDK 生成的所有内容都以 UTC 时间显示的那样。

住在澳大利亚 (QLD),我需要为此添加 10 小时来表示我所在时区的时间。

我正在从 SDK 中提取一个日期时间字段,并将该日期时间显示在 ASP.NET 转发器中。我已经围绕它包装了一个函数以转换为本地时区,但是它失败了,并显示以下内容

"方法AddAuQLDToUTC没有重载需要两个参数"

我在代码隐藏文件中使用的函数

public DateTime AddAuQLDToUTC(DateTime value) 
{
   DateTime UpdatedDate = new DateTime(value.Year, value.Month, value.Day, value.Hour, value.Minute, value.Second, DateTimeKind.Utc);
   UpdatedDate = UpdatedDate.ToLocalTime();
   return UpdatedDate;
}    

我可以将这个函数包装在 System.DateTime.Now 周围,它增加了 10 个小时,因为它认为它是 UTC,因为我已经添加到函数中,这是我所期望的。这证明该功能正在工作,但由于某种奇怪的原因,当包裹在中继器周围时它会失败,如下所示

<%# AddAuQLDToUTC(DataBinder.Eval(Container.DataItem, "new_InspectionDate"), "{0:D}")%>    

有什么想法吗?

从 UTC 时间转换为本地时间

您的方法接受一个输入,并且在调用方法时提供了两个参数。应该是这样的

<%# AddAuQLDToUTC((DateTime)DataBinder.Eval(Container.DataItem, "new_InspectionDate"))%>  

如果要格式化为 {0:D},则

 <%# String.Format("{0:D}",AddAuQLDToUTC((DateTime)DataBinder.Eval(Container.DataItem,"new_InspectionDate"))) %>