关于datetime:使用C#将GMT日期转换为本地时间的问题?

Problem converting a GMT date to local time using C#?

我们有一个用C(紧凑框架)编写的Windows Mobile应用程序。区域设置为(英语)新西兰。时区设置为格林尼治标准时间+12新西兰。

我们以GMT/UTC格式存储日期。我们有一个日期,2010-02-18,18:00:00,在UTC

这次在新西兰是早上7点。

当我们调用日期时间对象时

1
starttime = starttime.ToLocalTime();

我们早上9点到。我们做错了什么?


你在那个日期时间里指定了"种类"吗?像这样:

1
2
3
4
5
DateTime parsedStartTime = DateTime.SpecifyKind(
    DateTime.Parse(starttime),
    DateTimeKind.Utc);

DateTime localStartTime = parsedStartTime.DateToLocalTime();

这可能会有所帮助,因为它可能不知道您现在拥有的日期时间是UTC类型(可能未指定)。

如果这不起作用,那么显示StartTime设置方式的一些代码可能会有所帮助。