0

この文字列を--> 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 のもの) に基づいて、提案された変更を実装しましたが、まだ"String is not a valid DateTime error"

これも実装してみました -->

HUD.LastSyncDate = DateTime.ParseExact(mergeSubscription.SynchronizationAgent.LastUpdatedTime,"yyyyMMdd HH:mm:ss:fff",CultureInfo.InvariantCulture);

しかし、まだ何もありません。

4

3 に答える 3

4
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"); }
}

バックグラウンドで日時として保持し、文字列プロパティを使用して表示します。

于 2009-07-27T15:39:44.367 に答える
1

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 );
于 2009-07-27T15:39:20.013 に答える
0

何をしたいですか?文字列を取得してに渡しString.Format()、文字列フィールドに格納します。文字列を再フォーマットしますか? この場合、文字列を解析してDateTimeこの値を再度フォーマットする必要があります。

DateTime dateTime;
if (DateTime.TryParse(value, out dateTime))
{
    lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", dateTime);
}
else
{
    HandleInvalidInput(value);
}
于 2009-07-27T15:47:14.163 に答える