날짜를 올바르게 표시하려면 문자열을 형식으로 지정하십시오
-
19-09-2019 - |
문제
이 문자열을 변환하는 데 도움이 필요합니다 --> 20090727 10:16:36:643
에게 --> 07/27/2009 10:16:36
원래 날짜와 시간은 SynchronizationAgent.LastUpdated()
위의 형식으로 문자열을 반환하는 함수.
원래 질문 : 참조 용 보존
나는 이것을 가지고있다 -->
HUD.LastSyncDate = mergeSubscription.SynchronizationAgent.LastUpdatedTime;
이와 같이 보이는 속성을 설정하는 것입니다 -->
public static string LastSyncDate
{
get { return _lastSyncDate; }
set
{
_lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", value);
}
}
불행히도, 유무에 관계없이 String.Format
표시된 날짜는 다음과 같습니다 --> 20090727 10:16:36:643
원하는 방식으로 포맷하기 위해 여러 가지 변형을 시도했습니다. 내가 무엇을 놓치고 있습니까?
아래 제안을 기반으로 (대부분 Joel 's), 나는 제안 된 변경 사항을 구현했지만 여전히 "String is not a valid DateTime error"
나는 또한 이것을 구현하려고 시도했다 ->
HUD.LastSyncDate = DateTime.ParseExact(mergeSubscription.SynchronizationAgent.LastUpdatedTime,"yyyyMMdd HH:mm:ss:fff",CultureInfo.InvariantCulture);
그러나 여전히 아무것도 없습니다.
해결책
LastupdatedTime은 실제로 DateTime이 아닌 문자열 (과제를 수행 할 수 있기 때문에) 인 것 같습니다. 이 경우 적용된 형식은 아무것도하지 않습니다. LastupdatedTime을 DateTime으로 구문 분석 한 다음 문자열에 할당하기 전에 원하는 형식으로 개혁을 원합니다.
DateTime lastUpdated = DateTime.Parse( mergeSubscription.SynchronizationAgent.LastUpdatedTime );
HUD.LastSyncDate = string.Format( "{0:G}", lastUpdated );
public static string LastSyncDate { get; set; }
대신 parseexact를 사용해야 할 수도 있습니다.
DateTime lastUpdated = DateTime.ParseExact( "yyyyMMdd HH:mm:ss:fff",
...,
CultureInfo.InvariantCulture );
다른 팁
HUD.LastSyncDate = DateTime.Parse(mergeSubscription.SynchronizationAgent.LastUpdatedTime).ToString("MM/dd/yyyy")
당신은 어떤 것을 넣을 수 있습니다 형식 문자열 당신은 거기를 원합니다. 그러나 당신이 정말로 원하는 것이 다음과 같은 것 같습니다.
private static DateTime _lastSyncDate;
public static DateTime LastSyncDate
{
get { return _lastSyncDate; }
set { _lastSyncDate = value;}
}
public static string LastSyncDateString
{
get { return LastSyncDate.ToString("MM/dd/yyyy"); }
}
백그라운드에서 DateTime으로 유지하고 String 속성을 사용하여 디스플레이를 사용하십시오.
뭐하고 싶어? 당신은 끈을 얻고 전달하십시오 String.Format()
문자열 필드에 보관하십시오. 문자열을 재고하고 싶습니까? 이 경우 문자열을 다시 구문 분석해야합니다. DateTime
이 값을 다시 형식화합니다.
DateTime dateTime;
if (DateTime.TryParse(value, out dateTime))
{
lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", dateTime);
}
else
{
HandleInvalidInput(value);
}