ASP.NET中的Datetime.Now方法

时间:2013-09-01 09:59:23

标签: asp.net ajax datetime

我使用ASP.NET为必须添加到SQL数据库的数据提供一些变量。

我正在使用的代码:

我正在使用DateTime.Now来选择当前时间。

我如何使用

我有两个页面,一个是插入用户帖子的页面。其他页面用于ajax目的,为帖子添加一些文本注释。

在这两个页面中,我使用相同的代码。

但代码正在执行不同的值。你可以看看这里:

DateTime.Now

在帖子中,时间保存为“9/1/2013”​​,即2013年9月1日!在评论中它保存为2013年9月1日,这意味着相同。

我的问题:代码如何知道请求是ajax或post。帖子页面代码包含在if(IsPost) {中,但评论是ajax调用。

这背后的原因是什么?

3 个答案:

答案 0 :(得分:1)

我发现了问题所在。

我在数据库表中将列DataType设置为nvarchar(50)。将其编辑为DataType DateTime后,我得到了相同的结果。所以问题不是文化或日期时间。它是SQL Server数据库中列的DataType。

答案 1 :(得分:0)

假设您的AJAX调用没有更改DateTimes的格式字符串,我会假设处理这2个不同请求的线程在不同的文化下运行,这可以解释为什么它们的显示方式不同(不知道为什么虽然,也许检查你的设置)。尝试以下操作,您将看到文化如何影响DateTime输出:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
Console.WriteLine (DateTime.Now.ToString());
Thread.CurrentThread.CurrentCulture = new CultureInfo("gu-IN");
Console.WriteLine (DateTime.Now.ToString());

这里有一些additional information on CultureInfo

答案 2 :(得分:0)

代码从当前主题的文化信息中了解。你应该根据你的需要使用DateTime.Now.ToString(“yyyy-MMM-dd”)或任何其他格式来确保输出。