SharePoint API如何处理时区问题

使用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();

}

测试输出结果:

SharePoint API如何处理时区问题

结论:

  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();

}

测试输出结果:

SharePoint API如何处理时区问题

结论:

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

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

上一篇:ios开发——实用技术OC篇》倒计时实现的两种方法


下一篇:atitit. 文件上传带进度条 atiUP 设计 java c# php