Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#.net中日期时间的转换_C#_Asp.net_Sql Server 2008 - Fatal编程技术网

C#.net中日期时间的转换

C#.net中日期时间的转换,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我在将datetime的会话值转换为正确格式时遇到问题 当我使用DateTime lastlogged=Convert.ToDateTime(会话[“LastLogin]”)时我获取值{1/1/0001 12:00:00 AM}(在调试时获取值) 但它的实际价值 会话[“LastLogin”]是2011-08-02 16:35:52.987,它是从SQLServer 2008数据字段datetime中查询出来的如果您在会话中正确存储了该值,您可以通过将其转换为datetime来检索它 DateT

我在将datetime的会话值转换为正确格式时遇到问题

当我使用
DateTime lastlogged=Convert.ToDateTime(会话[“LastLogin]”)时我获取值{1/1/0001 12:00:00 AM}(在调试时获取值)
但它的实际价值

会话[“LastLogin”]
是2011-08-02 16:35:52.987,它是从SQLServer 2008数据字段datetime中查询出来的

如果您在会话中正确存储了该值,您可以通过将其转换为datetime来检索它

DateTime lastlogged = DateTime.Parse(Session["LastLogin"].ToString());
DateTime lastlogged = Convert.ToDateTime(Session["LastLogin"].ToString());

您的结果是
DateTime.MinValue
(0001年1月1日午夜)


如果会话中的值为
null
,您将得到此结果-这是最可能的解释。

正如其他人所建议的,您可以使用DateTime.Parse方法。但也许使用DateTime.TryParseExact会更好。通过这种方式,您可以定义日期时间的格式

DateTime lastLogin;
if (Session["LastLogin"] != null && DateTime.TryParseExact(Session["LastLogin"].ToString(), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out lastLogin))
{
    // TODO: Code that uses the parsed date.
}
我对ASP.net中的会话不是很熟悉,但是否也可以在其中存储整个对象?通过这种方式,还可以按原样存储日期时间,从而生成如下代码:

DateTime result = (DateTime) Session["LastLogin"];

为什么需要使用会话变量将日期前后转换为字符串?会话变量可以保存装箱对象中的日期值。
Session[“LastLogin”]==null
(您希望
false
)和
Session[“LastLogin”].ToString()
(您希望该日期)的值是什么?这似乎是一个字符串解析问题。尝试使用
DataTime.ParseExact(会话[“LastLogin”].ToString(),“yyyy-mm-dd hh:mm:ss”,CultureInfo.InvariantCulture)不编译。我需要一个字符串。是的,你说得对。我忘记了orgot.ToString()方法。改变了答案。