2017-11-04 140 views
1

我已经创建了一个WCF Rest服务,用于通过比较日期来检查和验证许可证。此服务用于Microsoft Dynamics CRM。 CRM用户可以来自任何国家。如何转换日期根据C#中的时区/国家?

自从几天以来,我几乎没有遇到过几个问题,特别是在Date和它的比较中。

服务以“MM/dd/yyyy时间”格式提供此日期。即11/4/2027 12:00:00 AM。它在字符串中。我想将它转换为DateTime格式,以便按照当前日期时间格式进行转换。

//C# Current code 
string strValidUpToDate = "11/4/2027 12:00:00 AM"; 
Date validUpToDate = Convert.ToDateTime(11/4/2027 12:00:00 AM); 

如果国家改变,上面不提供适当的格式。

任何人都可以请指导我吗?

回答

0

CRM在数据库表中以UTC存储日期时间。 CRM用户可能在不同的国家(时区),但系统会根据用户设置的偏移量进行计算。当在平台内检索相同的数据时,CRM将根据当前用户设置对其进行逆向工程展示。

如果在代码中查询相同的数据,它将按原样发送。即UTC。您必须注意代码中的时区转换以获得期望的结果。

TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 
DateTime localDatetime = TimeZoneInfo.ConvertTimeFromUtc(yourUTCDateTime, tz); 
+0

'的TimeZoneInfo TZ = TimeZoneInfo.FindSystemTimeZoneById( “W欧洲标准时间。”);'我怎样才能获得的时区标识符“'W.欧洲标准时间? –

+0

你在哪里使用这个WCF? –

+0

它在Azure上。让我知道你是否在问别的问题。 –

相关问题