当前位置:  开发笔记 > 编程语言 > 正文

字符串到C#中的DateTime转换

如何解决《字符串到C#中的DateTime转换》经验,为你挑选了1个好方法。

愚蠢的问题,但无法解决它...我有一个这种格式的字符串20081119

我有一个C#方法将字符串转换为DateTime以输入SQL Server数据库

public static DateTime MyDateConversion(string dateAsString)
    {

        return System.DateTime.ParseExact(dateAsString, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);

    }

问题是日期是这样的:Date = 19/11/2008 12:00:00 AM我需要它是yyyyMMdd类型的DateTime,因为我将它映射到一个模式来调用存储过程.

先谢谢你们.

干杯,Con



1> Marc Gravell..:

没有"yyyyMMdd类型的DateTime"这样的东西; DateTime只是一个大整数,表示一个纪元中的时间量 - 它没有格式.但这很好,因为你应该使用参数化的TSQL - 所以只需添加DateTime作为DbParameter的值,它将以明确的方式传递给db(不要使用字符串连接来构建TSQL命令) ):

DbParameter param = cmd.CreateParameter();
param.ParameterName = "@foo";
param.DbType = DbType.DateTime;
param.Value = yourDateTime; // the DateTime returned from .ParseExact
cmd.Parameters.Add(param);

或者SqlCommand:

cmd.Parameters.Add("@foo", SqlDbType.DateTime).Value = yourDateTime;

如果你真的需要一个字符串,那么只需将字符串直接用作[n] [var] char参数.

另外 - 在这种情况下,要解析日期我将使用不变文化(因为文化不具有格式):

DateTime yourDateTime =
            DateTime.ParseExact(dateString, "yyyyMMdd", CultureInfo.InvariantCulture);

从对话中,似乎您可能还需要从DateTime转到字符串,在这种情况下只需将其反转:

string dateString = yourDateTime.ToString("yyyyMMdd", CultureInfo.InvariantCulture);

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有