更改datetime.now的格式

时间:2015-08-06 11:23:05

标签: c# datetime

我想让用户最后一次看到并将其保存到mvc5中的sql数据库中。我在控制器中看到的最后一个代码是这样的:

users.userlast=DateTime.Now;

以此格式保存到我的数据库“2015-08-06 12:12:13.443”。我想只获取日期时间格式的日,月,年,小时和分钟。

我不能使用这样的东西,

var dateTime = DateTime.ParseExact("12/02/21 10:56:09", "yy/MM/dd HH:mm", CultureInfo.InvariantCulture);

var text = dateTime.ToString("MMM. dd, yyyy HH:mm");

它不起作用,因为我上次看到的列是日期时间类型而不是字符串。我该怎么办?

感谢。

编辑: 像whatsup应用程序一样,我想只看到小时和分钟,而不是最后一次看到的秒数。

5 个答案:

答案 0 :(得分:2)

您说您要存储为日期时间类型,在这种情况下,您不需要将字符串转换为DateTime。事实上,你不应该进行任何解析。

当您查询数据库时,您应该获得一个DateTime,您可以在其上调用所需的ToString()。

答案 1 :(得分:1)

您不必担心在数据库中保存的格式。如果您想以特定格式表示它,可以相应地对其进行ToString。

  

我希望日期时间仅为格式日,月,年,小时和分钟。

string text = dateTime.ToString("yyyy-MM-dd HH:mm",
                                CultureInfo.InvariantCulture);

CultureInfo.InvariantCulture将使用您指定的文化,无论用户当前的文化如何。

答案 2 :(得分:1)

以日,月,年,小时和分钟的格式获取日期时间(无秒,毫秒),在保存前创建新的DateTime值:

var dt = DateTime.Now;
users.userlast = dt.Date.AddHours(dt.Hour).AddMinutes(dt.Minute);

答案 3 :(得分:0)

您可以使用InvariantCulture,因为您的用户必须位于使用点而不是冒号的文化中:

DateTime.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);

答案 4 :(得分:0)

就这样做

var formattedDateTime = yourLastSeenDateTime.ToString("MMM. dd, yyyy HH:mm", CultureInfo.InvariantCulture);

编辑:按照您在评论中提到的那样试试

DateTime dbDate = yourLastSeenDateTime;
DateTime newDateTime = new DateTime(dbDate.Year, dbDate.Month, dbDate.Day, dbDate.Hour, dbDate.Minute, 0);