如何按以下格式安排日期时间

时间:2014-06-05 10:17:22

标签: asp.net-mvc

您好我正在使用C#MVC项目。我有这样的日期

string datetime = frmcollection["txtTo"].ToString()

此处,datetime变量包含以下格式的日期和时间: 06/05/2014 10:25:39

现在我需要在int的datetime之上,所以我替换了所有的/,:和空格。

所以现在我有以下结果:

 int datetime = 0;
 datetime = intdatetime

所以这里的datetime变量有以下重复: 6052014102539

所以我需要的是,我需要以不同的格式存储时间,如下所示: 2014060514102539 。所以基本上我需要重新安排inttime的位置。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

string datetime = frmcollection["txtTo"].ToString();

// your date format that is coming from form collection...
string yourDateFormat = "MM-dd-yyyy HH:mm:ss";

// convert string to date time
DateTime newDate = DateTime.ParseExact(datetime, yourDateFormat, null);

// change its format and convert it to string
string newDateStr = newDate.ToString("yyyy/MM/dd HH:mm:ss");

并使用“string to int”方法......

答案 1 :(得分:0)

创建一个获取字符串的方法,将其解析为日期并返回一个奇怪的日期时间int。像这样:

public int ParseDateToWeirdInt(string date)
{
    //Error checking omitted
    var d = DateTime.Parse(date);
    var stringThatWillBecomeAnInt = "";
    stringThatWillBecomeAnInt = d.Year.ToString();
    stringThatWillBecomeAnInt += d.Month.ToString();
    stringThatWillBecomeAnInt += d.Date.ToString();
    stringThatWillBecomeAnInt += d.TimeOfDay.Hours.ToString();
    stringThatWillBecomeAnInt += d.TimeOfDay.Minutes.ToString();
    stringThatWillBecomeAnInt += d.TimeOfDay.Seconds.ToString();

    return int.Parse(stringThatWillBecomeAnInt);
}

您应该使用StringBuilder而不是连接字符串,建议将方法转换为扩展方法。另请注意,该方法需要更好的错误处理(日期解析可能会失败,int解析可能会失败等)。

答案 2 :(得分:0)

谢谢大家帮助我。我发现这个解决方案对我来说很容易。

 datetime = Convert.ToDateTime(datetime ).ToString("yyyy/dd/MM HH:mm:ss");

所以现在我有我需要的格式的日期时间。现在我可以转换为int。

答案 3 :(得分:0)

只需将此答案添加为更清洁的解决方案

string datetime = frmcollection["txtTo"].ToString();
string newDateTime;

DateTime theDateTime;
if (DateTime.TryParse(datetime, out theDateTime))
{
    newDateTime = theDateTime.ToString("yyyy/dd/MM HH:mm:ss");
}
else
{
    // tell user they have entered the date in wrong format
}