从UTC时间转换为本地时间

时间:2014-12-29 04:15:38

标签: c# datetime utc dynamics-crm-online

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

我住在澳大利亚(QLD),我需要加上10个小时才能代表我所在时区的时间。

我从SDK中提取日期时间字段并将该日期时间显示到ASP.NET Repeater中。 我已经将一个函数包装在此处以转换为本地时区,但是它失败并带有以下

"方法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包装这个函数,因为它认为它的UTC已经增加了10个小时,因为我已经添加了我所期望的功能。这证明该功能正在工作,但由于某些奇怪的原因,它在下面转发器时会失败

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

如果您想格式化为{0:D},那么

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