zoukankan      html  css  js  c++  java
  • 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("
    ");
    
    }

    更新代码:

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

    更新代码:

    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的时候,处理好时区的问题,避免潜在的问题。

  • 相关阅读:
    Nhibernate对象转JSON
    C# Windows服务
    C# 接收http请求
    C# XML 基础解系
    C# XML 序列化与反序列化
    C# Newtonsoft.Json 应用
    C# 读取自定义XML
    对图片添加水印
    iText: 对pdf文件添加水印
    java对Office文件处理技术(介绍)
  • 原文地址:https://www.cnblogs.com/myprogram/p/4268488.html
Copyright © 2011-2022 走看看