【问题标题】:SharePoint 2007 SPListItem.File.TimeLastModified returned wrong dateSharePoint 2007 SPListItem.File.TimeLastModified 返回错误日期
【发布时间】:2017-10-20 18:40:49
【问题描述】:

在 SharePoint 2007 中,当我将文档保存到文档库时,已修改下的列表视图中显示的值为:

18/6/2012 13:06

但是当我以编程方式访问我认为是 SPListItem.File.TimeLastModified 的字段时,它返回了:

18/6/2012 3:06:43 AM

这意味着 1 已被截断,因此无论读取值如何,都会将下午 1 点变成凌晨 3 点。

网站和网站都继承了正确的时区。我应该怎么做才能使 TimeLastModified 显示正确的时间?或者这有可能吗?

谢谢。

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    TimeLastModified 属性始终以 UTC 格式返回值。 SP 页面上显示的日期/时间值通常会根据当前用户的文化转换为时区。以用户的时区显示所有内容,但在内部以 UTC 格式保存值是一种很好的做法。

    如果您想将 UTC 值转换为当前用户的时区,然后在 UI 中打印,您可以使用以下代码:

    SPFile file = ...;
    SPWeb web = ...; // SPContext.Current.Web or file.Item.ParentList.ParentWeb or ...
    DateTime time = UTCToWebTime(file.TimeLastModified, web);
    string text = FormatWebTime(time, web);
    
    DateTime UTCToWebTime(DateTime utcTime, SPWeb web) {
        SPTimeZone timeZone = web.RegionalSettings.TimeZone;
        DateTime localTime = timeZone.UTCToLocalTime(utcTime);
        return DateTime.SpecifyKind(localTime, DateTimeKind.Local);
    }
    
    // Uses SPRegionalSettings to be more accurate then value.ToString(web.Locale).
    string FormatWebTime(DateTime value, SPWeb web) {
        SPRegionalSettings regionalSettings = web.RegionalSettings;
        DateOptions dateOptions = new DateOptions(
            regionalSettings.LocaleId.ToString(CultureInfo.InvariantCulture),
            (SPCalendarType) regionalSettings.CalendarType, null,
            regionalSettings.FirstDayOfWeek.ToString(CultureInfo.InvariantCulture),
            regionalSettings.AdjustHijriDays.ToString(CultureInfo.InvariantCulture),
            null, null));
        string timePattern = regionalSettings.Time24 ?
            dateOptions.TimePattern24Hour : dateOptions.TimePattern12Hour;
        DateTimeFormatInfo format = web.Locale.DateTimeFormat;
        return value.ToString(format.ShortDatePattern, format) + " " +
            value.ToString(timePattern, format);
    }
    

    --- 费达

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2015-09-27
      • 2013-11-08
      • 2013-09-04
      相关资源
      最近更新 更多