SPListItem.GetFormattedValue에 DateTime 필드에 이상한 동작이있는 것 같습니다. 이 MSDN article에 따라 로컬 시간을 반환하는 SPListItem의 인덱서를 통해 DateTime 값을 검색합니다. 여기 MOSS 2007 : DateTime 필드의 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은 날짜가 UTC로 가정하고 어떤 종류인지에 관계없이 현지 시간으로 변환합니다. Reflector는 value.ToString()을 사용하는 GetFieldValueAsText를 사용하지만 어떤 이유로 UTC가 될 것으로 가정합니다.결과적으로 trough listItem.GetFormattedValue()에서 얻은 시간 필드의 문자열 표현은 (적어도 내 경우에는) 현지 시간 + (현지 시간 - UTC) 인 올바르지 않습니다.
누군가 SPListItem.GetFormattedValue()에서 동일한 문제가 발생했으며 해결 방법은 무엇입니까?
혹시 다른 사람이 그 문제를 겪었는지 또는 그 문제를 해결하기 위해 무엇을했는지 알고 싶습니까? –
둘 다 : 확실한 해결 방법이 있지만. – axk