一个学生类有一个叫做生日的属性。我的web服务器在北京(UTC+8),当我从服务器获取JSON格式的数据时,生日属性总是将8小时减少到原来的日期,我该如何纠正?我也在北京,我为所有的生日属性添加了8个小时,但如果我在另一个时区,或者web服务器不在北京,那么我必须手动添加其他小时。
在web服务器上,以下是我的代码:
return Json(student);获取数据的代码:
var studentReader= new StreamReader(Request.InputStream);
var student= JsonHelper.FromJson<Student>(studentReader.ReadToEnd());JsonHelper类:
public static T FromJson<T>(this string json)
{
return JsonConvert.DeserializeObject<T>(json);
}发布于 2013-05-26 16:33:29
建议您以UTC格式存储所有日期时间值。在客户端代码中,您可以将其转换为所需的任何时区。
发布于 2013-05-26 23:54:57
您的JSON序列化很好。这没什么问题。
您需要确保将所有日期-时间值存储为UTC。当您显示日期时,您可以将其转换为所需的时区。
我通常是这样做的:
公共静态日期(此对象日期){ DateTime dt;if (!DateTime.TryParse(date.ToString(),out dt)返回DateTime.UtcNow;//时区字符串。这也可以存储在web.config //或用户配置文件中var timeZone =“太平洋SA标准时间”;var defaultTimeZone = var var userTime = TimeZoneInfo.ConvertTimeFromUtc(dt,defaultTimeZone);return userTime;}
https://stackoverflow.com/questions/16757073
复制相似问题