[转载]DateTime TryParse
今天被Architect问住了,说你光用一个TryParse就判断人家是不是时间日期型的,是不完整的。所以我花点时间看了下TryParse的用法。
MSDN:http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx
TryParse有两种格式,一个是不提供Culture的,这种直接用当前系统的Culture;另一种是提供指定CultureInfo和DateTimeStyle的,就是用指定的Culture去Parse。
不论哪一种,TryParse都会用当前Culture的DateTimeFormatInfo里面的所有Pattern(参见控制面板里面的区域语言设置的时间日期格式),尝试去Parse那个字符串,只要成功就算parse过去了,也许月日年根本就是不对的。
照MSDN上讲,如果当前的DateTimeFormatInfo里面没有能匹配的pattern,应该Parse失败才对。我当前Culture是en-US,我写了个2012年11月11日,照样能Parse成功。有点奇怪。但是想要Parse加拿大法语区的格式就没法parse,只能指定成fr-CA的Culture才可以。
DateTime value;
var culture = System.Globalization.CultureInfo.CurrentCulture;
Console.WriteLine(culture.Name);
var style = System.Globalization.DateTimeStyles.None;
DateTime.TryParse("12月1日2012年", culture, style, out value);
Console.WriteLine(value);
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-CA");
DateTime.TryParse(" 27. septembre 2003 16:34", culture, style, out value);
Console.WriteLine(value);
var datetimeformatinfo = System.Globalization.DateTimeFormatInfo.CurrentInfo;
结论呢,我哪知道我将面对的string是什么鸟格式,所以只能直接就TryParse了,利用CurrentCulture。你想做的精确的话,就告诉我Culture是什么。
http://blog.csdn.net/hoken2020856/article/details/8225433
[转载]DateTime TryParse的更多相关文章
- 在浏览器的JavaScript里new Date().toUTCString()后,传递给C# DateTime().TryParse()会发生什么?
Format 1. Sun, 09 Oct 2016 13:24:35 GMT Format 2. Sun, 9 Oct 2016 13:36:09 UTC Format 1 是在IE里面产生的(Wi ...
- DateTime.TryParse 日期时间字符串验证
DateTime applicationDatetime = new DateTime(); bool applicationDate = DateTime.TryParse("2019-0 ...
- DateTime TryParse方法,介绍
1.与Date.Parse()方法的区别:Date.Parse(object o)方法接受一个object类型的参数,当参数为空或转换失败时会抛出异常DateTime.TryParse方法不会抛出异常 ...
- [转]C# ListView 单击标题实现排序(在转载的基础上有所完善)
using System; using System.Collections; using System.Windows.Forms; //在转载的基础上有所完善 namespace TDRFacto ...
- 【AspNetCore】【WebApi】扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat)
扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat) 一.背景 大家在使用WebApi时,会用到DateTime为参数,类似于这 ...
- C# DateTime和String转换
"; DateTime.ParseExact(time,"yyyyMMdd",System.Globalization.DateTimeFormatInfo.Curren ...
- C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)
在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...
- 字符串string类型转换成DateTime或DateTime?类型
常用的Convert.ToDateTime方法 //将含有正确日期格式的string类型转换成DateTime类型 string strDate = "2014-08-01"; D ...
- C#中DateTime应用
编写一个控制台程序,输入一个日期,求下一天的日期. 要求如下:在控制台输入一个日期(分别输入年.月.日),判断输入的日期是否有效,如果有效,计算该日期的下一天日期,并显示:否则,输出"无效的 ...
随机推荐
- (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- 用cudamat做矩阵运算的GPU加速
1. cudamat简介 cudamat是一个python语言下,利用NVIDIA的cuda sdk 进行矩阵运算加速的库.对于不熟悉cuda编程的程序员来说,这是一个非常方便的GPU加速方案.很多工 ...
- unity基本操作二
一:error1,先断网再启动点击Manual Activation点击Save License生成相应的alf文件2,联网打开https://license.unity3d.com/manual上传 ...
- AndroidStudio支持新的NDK的操作使用
在2015的Google I / O大会,5月底,谷歌宣布了一项新的支持由Android NDK Studio 1.3,Jetbrains CLion集成功能,Android gradle插件.这种支 ...
- mycat1.5~1.6的一个bug
以下语句在mysql单库中执行正常: SELECT * FROM device WHERE devicetype='AMS.Monitoring.XlCloud.QKL8154.XLCloudDevi ...
- cordova navigator app 对象
navigator.app.loadUrl() 加载 web 页面的应用程序中或者系统默认的浏览器中 navigator .app.cancelLoadUrl() 在 web 页面成功加载之前取消 ...
- visifire3.6.8 去水印方法
visifire 很NB的一套开源图表 不多介绍 详询google 3.0以下版本可以直接继承Chart类 override 加水印的函数就可以, 3.0以上版本需要自己编译源代码 这个水印函数藏得有 ...
- 关于CSS中的PX值(像素)
场景: 人物:前端实习生「阿树」与 切图工程师「玉凤」事件:设计师出设计稿,前端实现页面 玉凤:树,设计稿发给你啦,差那么点像素,就叼死你┏(  ̄へ ̄)=☞阿树:~(>_<)~毛问题噶啦~ ...
- Odoo 库存管理-库存移动(Stock Move)新玩法
库存移动(Stock Move)新玩法 Odoo的库存移动不仅仅是存货在两个“存货地点”之间的移动的基本概念了,他们可以被“串联”在一起,可以用来生成或改变其对应的拣货单 (Picking).链式库存 ...
- How to force to Fullscreen Form
Is it possibile by code resize a form to fullscreen? (like button Maximize) ? // VAR Changed on 10 J ...