문제

이 문자열을 변환하는 데 도움이 필요합니다 --> 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);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top