博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
datetime format
阅读量:7088 次
发布时间:2019-06-28

本文共 1314 字,大约阅读时间需要 4 分钟。

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

 

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)
{
}

转载于:https://www.cnblogs.com/FaDeKongJian/archive/2013/05/29/3107295.html

你可能感兴趣的文章
FB面经Prepare: Merge K sorted Array
查看>>
模拟链表
查看>>
C#中使用SendMessage在进程间传递数据的实例
查看>>
ADT Android Development Tools
查看>>
OpenGL ES 简单教程
查看>>
nvidia显卡驱动卸载和卸载后的问题
查看>>
Github 开源项目(二) jsmpeg-vnc
查看>>
[原创] 扩展jquery-treegrid插件, 实现勾选功能和全删按钮.
查看>>
Android - Error: "java.io.IOException: setDataSource failed.: status=0x80000000"
查看>>
HTTP协议(转)
查看>>
javascript设计模式
查看>>
BS程序怎样通过浏览器了解点击响应时间
查看>>
(转) 密码学中的“盐值 Salt”
查看>>
UIWebView的高度不对问题
查看>>
POCO库中文编程参考指南(10)如何使用TCPServer框架?
查看>>
Java集合源码分析(二)Linkedlist
查看>>
安卓手机GPU OpenCL总结(转)
查看>>
【大数据】基于Hadoop的HBase的安装(转)
查看>>
SpringBoot四大神器之Actuator
查看>>
html复习之标签整理
查看>>