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

  • 相关阅读:
    Microsoft 基准安全分析器(MBSA)
    神奇的C++模版
    Windows下的Memcache安装
    BisonFlex 笔记
    虚函数背后的秘密
    如何切换SecureCRT的帐号
    动态生成JS 实现 .NET 网站广告管理
    fatal error C1853 预编译头文件来自编译器的早期版本 解决方法
    解决 unresolved external symbol 无法解析 _send@16
    linux远程登录
  • 原文地址:https://www.cnblogs.com/myprogram/p/4268488.html
Copyright © 2020-2023  润新知