用户应该以格式输入日期:%m %d %Y
我需要做的是将日期转换为:11 11 2013
(今天的日期)。我没有多做日期。是否有一些方法可以开箱即用?我浏览了DateTime选项但找不到我需要的东西。
编辑:
从收到的答案来看,似乎不是很清楚我在问什么。
在我们的软件中,用户可以按以下格式插入日期:
http://ellislab.com/expressionengine/user-guide/templates/date_variable_formatting.html
我正在尝试解析此用户输入并返回今天的日期。所以从上面的链接:
%m - 月 - “01”到“12”
%d - 每月的某一天,带前导零的2位数 - “01”到“31”
%Y - 年,4位数 - “1999”
我想知道是否有一种方法将%m %d %Y
作为输入并以指定的格式(今天为11 11 2013
)返回相应的今天日期。或者至少接近那个。
希望现在更清楚了。
编辑2:
在挖掘了一点之后,我发现我正在寻找的东西相当于C#中的C ++ strftime。
http://www.cplusplus.com/reference/ctime/strftime/
但由于某种原因,我无法在C#中看到这样的示例。
答案 0 :(得分:4)
您可以使用DateTime.TryParseExact
解析日期字符串,DateTime-ToString
将其转换回所需格式的字符串:
DateTime parsedDate;
if (DateTime.TryParseExact("11 11 2013", "MM dd yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out parsedDate))
{
// parsed successfully, parsedDate is initialized
string result = parsedDate.ToString("MM dd yyyy", System.Globalization.CultureInfo.InvariantCulture);
Console.Write(result);
}
答案 1 :(得分:2)
我对DateTime输入和输出的了解:
http://www.dotnetperls.com/datetime-parse用于输入(解析)
http://www.csharp-examples.net/string-format-datetime/输出(格式化)
string dateString = "01 01 1992";
string format = "MM dd yyyy";
DateTime dateTime = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
编辑,因为他的编辑使我的上述答案无关紧要(但会留在那里供参考):
根据您的说法,您希望以动态定义的格式输出今天的日期?
所以,如果我想看月,日,年,我说“MM dd YY”,你还给我了吗?
如果是这样的话:
DateTime dt = DateTime.Today; // or initialize it as before, with the parsing (but just a regular DateTime dt = DateTime.Parse() or something quite similar)
然后
String formatString = "MM dd YY";
String.Format("{0:"+ formatString+"}", dt);
但你的问题仍然不太清楚。
答案 2 :(得分:2)
使用ParseExact:
var date = DateTime.ParseExact("9 1 2009", "M d yyyy", CultureInfo.InvariantCulture);