Datetime 使用哈希表和日期时间字段将文件添加到sharepoint库时,时区偏移不正确
不要问我为什么,但我需要用一个操作上传文件和元数据集(Files.Add()和Update()不合适) 我使用以下代码上载带有元数据的文件:Datetime 使用哈希表和日期时间字段将文件添加到sharepoint库时,时区偏移不正确,datetime,sharepoint,timezone,Datetime,Sharepoint,Timezone,不要问我为什么,但我需要用一个操作上传文件和元数据集(Files.Add()和Update()不合适) 我使用以下代码上载带有元数据的文件: using System; using System.Collections; using Microsoft.SharePoint; class Program { static void Main(string[] args) { using (var site = new SPSite("http://shp2013:
using System;
using System.Collections;
using Microsoft.SharePoint;
class Program
{
static void Main(string[] args)
{
using (var site = new SPSite("http://shp2013:4000"))
{
using (var web = site.OpenWeb())
{
var list = web.Lists["TheLibrary"];
var dt = new DateTime(2011,1,11, 18, 15, 00);
var dtUtc = TimeZone.CurrentTimeZone.ToUniversalTime(dt);
var ht = new Hashtable();
ht.Add("TheDate", dtUtc);
var file = list.RootFolder.Files.Add("filename.bin", new byte[]{ 1,5,12 }, ht, overwrite: true);
var theDate = file.Item["TheDate"];
Console.WriteLine("Original date: {0}", dt);
Console.WriteLine("Original in UTC: {0}",dtUtc);
Console.WriteLine("Value get: {0}", theDate);
}
}
}
}
输出为:
Original date: 1/11/2011 6:15:00 PM
Original in UTC: 1/11/2011 3:15:00 PM
Value get: 1/11/2011 7:15:00 PM
这就是问题所在:
变量的值日期:
在w3wp.exe中:
2011-01-11 18:15:00.000(好)
在控制台应用程序中:
2011-01-11 19:15:00.000(不正确)
在输入时,dtUtc包含相同的值
为什么控制台应用程序时区偏移量与w3wp中的不同?
我需要检查的是:ThreadCulture、ThreadUICulture还是其他什么
因为这是共享框架的一部分,所以代码必须在具有任何操作系统设置的不同环境中运行
背景:
Sharepoint区域设置:
- 地点:“俄语”
- 时区:“(UTC+03:00)莫斯科,圣彼得堡,伏尔加格勒(RTZ 2)”
- 显示语言:英语(美国)
- 地区格式:英文(美国)
- 家乡:俄罗斯
- 非unicode语言:英语(美国)
list
是什么?(请记住,我没有sharepoint经验,但您似乎没有在使用语句中的任何位置使用web
)