我需要帮助转换此字符串 - > 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);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top