基于DateTime.ParseExact方法的使用详解

参数说明
CultureInfo.CurrentCulture获取当前线程的区域信息中,包括DateTimeFormat 日期显示格式(日期分隔符)和 NumberFormat 货币。
试例:
1、时间中没有使用分割符的情况:


代码如下:

string  temp = "18991230" ;
DateTime dateTemp = DateTime.ParseExact(temp, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None);

2、时间中使用分割符的情况:


代码如下:

string  temp = "1899-12-30" ;
DateTime dateTemp = DateTime.ParseExact(temp, "yyyy-MM-dd", CultureInfo.CurrentCulture, DateTimeStyles.None);
DateTime dateTemp = DateTime.ParseExact(temp, "yyyy/MM/dd", CultureInfo.CurrentCulture, DateTimeStyles.None);

都正确,原因:
CultureInfo.CurrentCulture获取当前线程的CultureInfo的DateTimeFormat属性作为IFormatProvider,然后在DateTimeParse.ParseByFormat方法中,遇到format参数的/字符时,会比较输入日期字符串的当前字符是否为当前DateTimeFormatInfo的DateSeperator,如果是,则返回true,即允许转换,如果不是则返回false。当前线程的区域信息中,日期分隔符即为-,因此,转换得以成功。
像有分割符的情况最好使用下面方式:


代码如下:

string  temp = "1899-12-30" ;
DateTimeFormatInfo dtfi = new CultureInfo("zh-CN", false).DateTimeFormat;
DateTime dateTemp =  DateTime.ParseExact(temp "yyyy-MM-dd", dtfi, DateTimeStyles.None) ;  //使用当前分割符

(0)

相关推荐

  • .NET的DateTime函数获取上个月的起始和截止时间的方法

    本文实例讲述了.NET的DateTime函数获取上个月的起始和截止时间的方法.分享给大家供大家参考.具体分析如下: 报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出.网上查询了一些.NET 的C#例子,发现都实现的比较复杂,其实这个问题可以很简单的通过.NET的DateTime函数来实现,因为.NET中给我们提供了当前天数--System.DateTime.Now.Day函数,还有增加天和月份的AddDays和AddMonth函数. 于是我们可以这样设想,当前时间 -

  • c#友好显示日期 c#日期datetime使用方法

    复制代码 代码如下: #region 友好显示时间        /// <summary>        /// 友好显示时间        /// </summary>        /// <param name="date"></param>        /// <returns></returns>        public static string ShowTime(DateTime date) 

  • asp.net中button控制先执行js再执行后台程序的方法

    本文实例讲述了asp.net中button控制先执行js再执行后台程序的方法.分享给大家供大家参考.具体分析如下: 在.net中要实现button控制点击之后先执行js再执行后台程序这个看上去没什么难度,这里我们就一起来看一个asp.net中button控制先执行js再执行后台程序的实现方法,希望可以帮助到各位. 关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了. 这就需要javascript,但是我发现仅仅有javascript还是不够的.but

  • c# DateTime常用操作实例(datetime计算时间差)

    复制代码 代码如下: #region DateTime操作 public class C3    {        //DateTime常用的操作        public static void Fun1()        {            //格式:2012-8-16 11:21:29            Console.WriteLine("当前时间:{0}", DateTime.Now.ToString()); //格式:2012-8-16 0:00:00     

  • c#中DateTime.Now函数的使用详解

    复制代码 代码如下: //2008年4月24日     System.DateTime.Now.ToString("D");     //2008-4-24     System.DateTime.Now.ToString("d");     //2008年4月24日 16:30:15     System.DateTime.Now.ToString("F");     //2008年4月24日 16:30     System.DateTime

  • C#中DateTime日期类型格式化显示方法汇总

    本文汇总了常用的DateTime日期类型格式化显示方法,方便读者在使用的时候参考借鉴一下.具体如下所示: 1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN

  • asp.net利用cookie保存用户密码实现自动登录的方法

    本文实例讲述了asp.net利用cookie保存用户密码实现自动登录的方法.分享给大家供大家参考.具体分析如下: 在asp.net中可以用cookie保存用户的帐户密码实现自动登录的功能,但是需要强调一下,cookie在客户端保存,是不安全的,推荐使用md5加密保存. 下面分析一下在asp.net中cookie的创建.提取与销毁的方法: 创建cookie 复制代码 代码如下: //向客户端写入Cookie HttpCookie hcUserName1 = new HttpCookie("unam

  • 使用DateTime的ParseExact方法实现特殊日期时间的方法详解

    今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: 复制代码 代码如下: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间.使用最常用的DateTime.Parse(string dateTimeStr)无法转换,问题就在于这个自定义格式上.搜索了之后,我找到了下面的方法: 复制代码 代码如下: public static DateTime ParseExact( string s, string form

  • c#详解datetime使用示例

    实例: 用户输入一个日期,要求输出这个日期是星期几和在这一年中的第几天: 复制代码 代码如下: //声明一个DateTime类型的变量用于存放用户输入的日期DateTime dt;Console.WriteLine("请输入日期:(例如:2000-01-01 或 2000/01/01)");//把输入的日期字符串转换成日期格式类型dt = DateTime.Parse(Console.ReadLine());//因为DayOfWeek返回的是0.1.2.3.4.5.6,分别对应的是日.

  • 深入Unix时间戳与C# DateTime时间类型互换的详解

    Unix时间戳最小单位是秒,开始时间为格林威治标准时间1970-01-01 00:00:00ConvertIntDateTime方法的基本思路是通过获取本地时区表示Unixk开始时间,加上Unix时间值(即过去的秒数). ConvertDateTimeInt方法的基本思路是通过刻度数差,再把刻度数转换为秒数,当然要说明的是,我这里返回的是double类型,意义上并非是真正的Unix时间戳格式.要获取真正Unix时间戳的,只获取整数部分就可以了. 复制代码 代码如下: dangranusing S

  • c# datetime 格式化大全

    复制代码 代码如下: //c datetime 格式化DateTime dt = DateTime.Now;Label1.Text = dt.ToString();//2005-11-5 13:21:25Label2.Text = dt.ToFileTime().ToString();//127756416859912816Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816Label4.Text = dt.ToLoca

随机推荐