码迷,mamicode.com
首页 > Windows程序 > 详细

SharePoint API如何处理时区问题

时间:2015-02-02 19:48:04      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

使用SharePoint API,我们经常会有时区转换的问题,SharePoint API 本身如何处理时区问题的呢?

本文主要以Modified字段为例测试相关API的行为。

CSOM API测试:

输出代码:

private static void ClientAPIOutputModified(ClientContext context, ListItem listItem)

{

context.Load(listItem);

context.ExecuteQuery();

var modifiedTime = (DateTime) listItem["Modified"];

 

Console.WriteLine("Output Time: {0} , Kind: {1}", modifiedTime, modifiedTime.Kind);

Console.WriteLine("\r\n");

}

 

更新代码:

private static void ClientAPISetModified(ClientContext context, ListItem listItem, DateTime dateTime)

{

Console.WriteLine("Set Time: {0} , Kind: {1}", dateTime, dateTime.Kind);

 

listItem["Modified"] = dateTime;

listItem.Update();

context.ExecuteQuery();

}

 

 

测试输出结果:

技术分享

 

结论:

  1. 使用CSOM API查询 可能返回Utc时间也可能返回Local时间
  2. 使用CSOM API 更新,接受Utc时间和Local时间,Unspecified类型的时间被认为Local时间

 

Server API 测试:

输出代码:

private static void ServerAPIOutputModified(SPListItem listItem)

{

var modifiedTime = (DateTime) listItem["Modified"];

 

Console.WriteLine("Time: {0} , Kind: {1}", modifiedTime, modifiedTime.Kind);

Console.WriteLine("\r\n");

}

 

更新代码:

private static void ServerAPISetModified(SPListItem listItem, DateTime dateTime)

{

Console.WriteLine("Set Time: {0} , Kind: {1}", dateTime, dateTime.Kind);

listItem["Modified"] = dateTime;

listItem.Update();

}

 

测试输出结果:

技术分享

结论:

Server API查询只返回Local Time,更新也只接受LocalTime

 

使用SharePoint API的时候,处理好时区的问题,避免潜在的问题。

SharePoint API如何处理时区问题

标签:

原文地址:http://www.cnblogs.com/myprogram/p/4268488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!