格式的字符串正确显示日期
-
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的的),我实施了修改建议,但我仍然得到一个"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"); }
}
请其作为背景中的日期时间,只使用该字符串属性进行显示。
那你想干什么?你得到一个字符串,将它传递给String.Format()
并将其存储在一个字符串字段。你想重新格式化字符串?在这种情况下,你要解析的字符串返回DateTime
并再次格式化此值。
DateTime dateTime;
if (DateTime.TryParse(value, out dateTime))
{
lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", dateTime);
}
else
{
HandleInvalidInput(value);
}
不隶属于 StackOverflow