0

我在将日期时间的会话值转换为正确格式时遇到了一些问题。

当我使用时DateTime lastlogged = Convert.ToDateTime(Session["LastLogin"]);,我得到值 {1/1/0001 12:00:00 AM} (在调试时得到值)但实际值为 Session["LastLogin"]2011-08-02 16:35:52.987 ,这是从 SQLServer 2008 中查询出来的数据字段日期时间

4

4 回答 4

2

您的结果是DateTime.MinValue(01/01/0001 午夜)。

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

于 2012-08-02T09:26:06.790 回答
0

正如其他人已经建议的那样,您可以使用 DateTime.Parse 方法。但也许使用 DateTime.TryParseExact 会更好。这样您就可以定义 DateTime 的格式

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 中的 Session 不是很熟悉,但是否也可以在其中存储整个对象?这样,也应该可以按原样存储 DateTime,从而生成如下所示的代码:

DateTime result = (DateTime) Session["LastLogin"];
于 2012-08-02T09:35:47.640 回答
0
DateTime lastlogged = DateTime.Parse(Session["LastLogin"].ToString());
于 2012-08-02T09:20:41.120 回答
0

如果您在 Session 中正确存储该值,则可以通过将其转换为 DateTime 来检索它。

DateTime lastlogged = Convert.ToDateTime(Session["LastLogin"].ToString());
于 2012-08-02T09:21:57.897 回答