2016-07-28 143 views
0

我有一个变量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); 
+0

或者你也可以用'openDate.ToString( “MM/DD/YYYY”);' –

+0

[如何删除DateTime对象中的C#中的日期时间部分?]可能的重复?(http://stackoverflow.com/questions/6121271/how-to-remove-time-portion-of-date-in-c- sharp-in-datetime-object-only) –

回答

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); 
+0

工作......谢谢!!!!!!!! – john

1

考虑openDate是String类型的,我会做到这一点

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

0

您可以使用格式化的日期时间: 如果它是一个日期时间:

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

如果数据类型不是日期时间,并且您确定格式将始终如此,那么您始终可以将字符串转换为日期时间并使用th上述的方法。

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

在这种情况下,'openDate'是一个字符串,它在这里不起作用。 – FrankerZ

+0

我已根据您的要求编辑 – Abhinandan

-1

使用下列 - openDate = openDate.Date

+0

在这种情况下,'openDate'是一个字符串,它在这里不起作用。 – FrankerZ

1

从你的代码很显然,openDate是字符串类型的,你有价值观,是DateTime字符串表示,可以申请DateTime的字符串值格式化。

您有多个选项。

  • 转换stringopenDateDateTime值,然后应用格式
  • 做一些字符串操作来提取日期部分从您的字符串值。

字符串操作:

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

的答案是伟大的,特别是如果你想控制你的“时间”部分的格式。这里是让你是什么德最简单的方法后:

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

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

输出:

enter image description here