正しく日付を表示するには、文字列をフォーマット
-
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
私はそれを私が望むようにフォーマットするために複数のバリエーションを試してみました。私は何をしないのですか?
以下の提案(のほとんどはジョエルのの)、私は提案された変更を実施したが、私はまだ"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 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"); }
}
バックグラウンドでの日時として、それを維持し、単に表示のための文字列プロパティを使用します。
あなたは何をやりたいのですか?あなたは、文字列を取得String.Format()
と文字列フィールドに格納するためにそれを渡します。あなたは、文字列を再フォーマットしますか?この場合、あなたが戻っDateTime
に文字列を解析して、再度この値をフォーマットする必要があります。
DateTime dateTime;
if (DateTime.TryParse(value, out dateTime))
{
lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", dateTime);
}
else
{
HandleInvalidInput(value);
}