SPListItem.GetFormattedValue डेटटाइम फ़ील्ड के लिए एक अजीब व्यवहार प्रतीत होता है। यह SPListItem के इंडेक्सर के माध्यम से डेटटाइम मान पुनर्प्राप्त करता है जो इस MSDN article के अनुसार स्थानीय समय देता है। यहाँ परावर्तकMOSS 2007: SPListItem.GetFormattedValue डेटटाइम फ़ील्ड के लिए एक बग है?
से एक टुकड़ाpublic string GetFormattedValue(string fieldName)
{
SPField field = this.Fields.GetField(fieldName);
if (field != null)
{
return field.GetFieldValueAsHtml(this[fieldName]);
}
return null;
}
तो यह SPListItem के इंडेक्सर का उपयोग करता है मान प्राप्त करने के लिए और SPFields.GetFieldValueAsHtml से मूल्य फ़ॉर्मेट करने के लिए है। GetFieldValueAsHtml मानता है कि तिथि यूटीसी में है और इसे स्थानीय समय में परिवर्तित करें चाहे इससे कोई फर्क नहीं पड़ता। (परावर्तक दिखाता है कि यह GetFieldValueAsText का उपयोग करता है जो value.ToString() का उपयोग करता है लेकिन कुछ कारणों से यह समय यूटीसी बनता है।)
अंत परिणाम यह है कि एक समय क्षेत्र पर स्ट्रिंग प्रस्तुति गड़बड़ सूची प्राप्त की गई है। GetFormattedValue() (कम से कम मेरे मामले में) गलत है, स्थानीय समय + (स्थानीय समय - यूटीसी) होने के नाते।
क्या किसी को भी SPListItem.GetFormattedValue() के साथ एक ही समस्या का सामना करना पड़ा और आपका कामकाज क्या था?
क्या आप जानना चाहते हैं कि किसी और ने इसका सामना किया है या इसके आसपास होने के लिए उन्होंने क्या किया है? –
दोनों :) हालांकि एक स्पष्ट कामकाज है। – axk