您好我正在使用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的位置。
我该怎么做?
答案 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
}