删除时间和日期

时间:2016-07-28 16:27:28

标签: c#

我有一个变量openDate,它保存日期和时间,我想删除日期。我尝试了以下示例,但它无法正常工作。我做错了什么,或者我应该怎么做,因为即使在试图剥离日期之后变量openDate仍然保持不变? openDate的值为" 2012-03-08 00:00:00"

openDate = ! string.IsNullOrEmpty(node.ChildNodes[f].Attributes["ows_PMO_x0020_Origination_x0020_Date"].Value)
           ? node.ChildNodes[f].Attributes["ows_PMO_x0020_Origination_x0020_Date"].Value
           : "" ;
openDate  = String.Format("{0:MM/dd/yyyy}", openDate);

6 个答案:

答案 0 :(得分:1)

考虑openDate是String类型,我会这样做

var dt = DateTime.Parse(openDate).ToString("MM/dd/yyyy");

答案 1 :(得分:1)

从代码中可以清楚地看出openDate的类型为字符串,并且您的值为DateTime的字符串表示形式,您可以对字符串值应用DateTime格式。

您有多种选择。

  • string openDate转换为DateTime值,然后应用格式
  • 执行一些字符串操作以从字符串值中提取日期部分。

字符串操作:

string openDate = "2012-03-08 00:00:00";
string formatted = openDate.Substring(0, openDate.IndexOf(' '));

DateTime解析。

DateTime parsedDateTime = DateTime.Parse(openDate);
string formattedDateTime = parsedDateTime.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

您需要先将日期转换为DateTime对象。如果您的字符串采用其他格式或自定义格式,请参阅示例here

openDate = !string.IsNullOrEmpty(node.ChildNodes[f].Attributes["ows_PMO_x0020_Origination_x0020_Date"].Value)? node.ChildNodes[f].Attributes["ows_PMO_x0020_Origination_x0020_Date"].Value: "" ;
//openDate is a string at this point. You'll need to convert it to a datetime object first, for the following line to work:
var dtObject = DateTime.Parse(openDate);
//Format the newly created datetime object
openDate  = String.Format("{0:MM/dd/yyyy}", dtObject);

答案 3 :(得分:0)

您可以使用以下格式设置日期时间格式 如果是日期时间:

OpenDate = OpenDate.ToString("yyyy-mm-dd");

如果数据类型不是datetime,并且您确定格式始终是那样,那么您始终可以将字符串转义为datetime并使用上述方法。

Convert.ToDateTime(openDate).ToString("yyyy-mm-dd");

答案 4 :(得分:0)

答案很棒,特别是如果您想控制“时间”部分的格式。以下是获取您所需内容的最简单方法:

        var dt = Convert.ToDateTime("2012-03-08 00:00:04");

        Console.WriteLine(dt.ToLongTimeString());
        Console.WriteLine(dt.TimeOfDay);

输出:

enter image description here

答案 5 :(得分:-1)

使用以下内容 - openDate = openDate.Date