プロパティは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);
}
--- フェルダ