澳门新葡萄京娱乐场datetime format

DateTime.ParseExact(“2011-06-26 13:12:11”, “yyyy-MM-dd HH:mm:ss”,
CultureInfo.GetCultureInfo(“zh-cn”));

CultureInfo.CurrentCulture获取当前线程的区域信息中,包括DateTimeFormat
日期显示格式(日期分隔符)和 NumberFormat 货币。

如上使用 ParseExact,或者使用 TryParseExact。TryParseExact
遇到错误时不会抛出异常,具体用法与
int.TryParse
类似。

试例:

相关阅读

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) ; //使用当前分割符

 

DateTimeFormatInfo dtfi = new CultureInfo(“en-US”,
false).DateTimeFormat;

// Thread.CurrentThread.CurrentCulture=c;
try
{
DateTime a = DateTime.ParseExact(s, “dd/MM/yyyy”, dtfi,
DateTimeStyles.None);
string sss = a.ToString(“dd/MM/yyyy”);
}
catch (Exception)
{

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注