Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置字符串格式以正确显示日期_C#_Datetime_String_Formatting_Iformatprovider - Fatal编程技术网

C# 设置字符串格式以正确显示日期

C# 设置字符串格式以正确显示日期,c#,datetime,string,formatting,iformatprovider,C#,Datetime,String,Formatting,Iformatprovider,我需要帮助将此字符串-->20090727 10:16:36:643转换为-->07/27/2009 10:16:36 原始日期和时间由SynchronizationAgent.LastUpdated()函数返回,该函数返回上述格式的字符串 原始问题:保留以供参考 我有这个--> HUD.LastSyncDate = mergeSubscription.SynchronizationAgent.LastUpdatedTime; public static string LastSyncDa

我需要帮助将此字符串-->
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);
        }
    }
它正在设置一个如下所示的属性-->

 HUD.LastSyncDate = mergeSubscription.SynchronizationAgent.LastUpdatedTime;
public static string LastSyncDate
    {
        get { return _lastSyncDate; }
        set
        {
            _lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", value);
        }
    }
不幸的是,无论是否使用
字符串.Format
显示的日期如下所示-->
20090727 10:16:36:643

我尝试了多种变体,以我想要的方式格式化它。我错过了什么

基于以下建议(主要是Joel的建议),我实现了建议的更改,但仍然得到一个
“字符串不是有效的日期时间错误”

我也尝试过实现这个-->


但仍然没有。在我看来,LastUpdateTime实际上是一个字符串(因为您可以执行赋值),而不是日期时间。在这种情况下,应用的格式不会起任何作用。您需要将LastUpdateTime解析为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 );

在我看来,LastUpdateTime实际上是一个字符串(因为您可以执行赋值),而不是DateTime。在这种情况下,应用的格式不会起任何作用。您需要将LastUpdateTime解析为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 );
你想放什么就放什么。但听起来你真正想要的是这样的:

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属性进行显示

你想放什么就放什么。但听起来你真正想要的是这样的:

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

你想做什么?获取一个字符串,将其传递给
string.Format()
,并将其存储在字符串字段中。是否要重新格式化字符串?在这种情况下,您必须将字符串解析回
DateTime
,然后再次格式化此值

DateTime dateTime;
if (DateTime.TryParse(value, out dateTime))
{
    lastSyncDate = String.Format(CultureInfo.InvariantCulture,"{0:G}", dateTime);
}
else
{
    HandleInvalidInput(value);
}

我认为我的问题是LastUpdateTime返回的字符串的格式很奇怪-->
20090727 10:45:49.990
错误地说“字符串未被识别为有效的日期时间”。我认为我的问题是LastUpdateTime返回的字符串的格式很奇怪-->
20090727 10:45:49.990
错误地说“字符串未被识别为有效的日期时间“我尝试了你的建议,得到了与我在Joel Coehoorn的评论部分中发布的相同的错误。日期的最后一个部分使用冒号还是句号分隔符?如果我的格式字符串使用句点分隔符,您可能需要调整它。你的问题显示了一个冒号,所以我用了它,但通常是小数秒的句号。句号就是问题所在。我现在用你的建议和乔尔的财产建议的组合得到了它。因为他有更多的选票,我想你得到了荣誉。有时标记多个答案会很好。我尝试了你的建议,得到了与我在Joel Coehoorn的评论部分中发布的相同的错误。日期的最后一个部分是否使用冒号或句号分隔符?如果我的格式字符串使用句点分隔符,您可能需要调整它。你的问题显示了一个冒号,所以我用了它,但通常是小数秒的句号。句号就是问题所在。我现在用你的建议和乔尔的财产建议的组合得到了它。因为他有更多的选票,我想你得到了荣誉。有时标记多个答案会很好。