我正在开发一个在中央时区的系统上执行的C#.Net应用程序。应用程序使用他们提供的API从第三方获取信息。我使用WSDL来生成我的应用程序访问API的代码......他们的报告API允许您定义报告的开始日期和结束日期。这些是C#DateTime字段和XSD:dateTime。现在,当我设置开始日期和结束日期并允许API创建SOAP消息时,日期并不总是包含时区,除非我使用ToLocalTime方法设置日期字段;但是,该方法将在中央时区(CST)中创建DateTime字段,但我需要在太平洋时区(PST)中创建这些字段。如果我将我的机器时间设置为PST一切都很好......但当然这会导致其他时间问题。我可以使用哪些方法来控制DateTime的格式?或者,是否有可以在C#中设置的应用程序设置,允许时区控制?
答案 0 :(得分:0)
我认为您可以使用System.TimeZoneInfo来实现这一目标。例如:
TimeZoneInfo.ConvertTime(myLocalTime, TimeZoneInfo.FindSystemTimeZoneById(“Pacific Standard Time”));
答案 1 :(得分:0)
我认为你有两种选择。显然,你可以做的将取决于目标系统如何处理它收到的日期时间。
1-将日期时间转换为目标时区,并发送没有时区信息的请求。这将假设目标系统将接受没有时区信息的日期时间在PST时区。
2-更改为使用DateTimeOffset。这将允许您明确指定时区偏移量,并将使用您指定的时区信息进行序列化。
如果可能,我会选择选项2.