从 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}")%>
有什么想法吗?
您的方法接受一个输入,并且在调用方法时提供了两个参数。应该是这样的
<%# AddAuQLDToUTC((DateTime)DataBinder.Eval(Container.DataItem, "new_InspectionDate"))%>
如果要格式化为 {0:D},则
<%# String.Format("{0:D}",AddAuQLDToUTC((DateTime)DataBinder.Eval(Container.DataItem,"new_InspectionDate"))) %>