am,pm时间转换

写在前面

最近遇到的一个问题,在英文操作系统上,获取到的时间是带am或者pm的。但是数据库是datetime类型,存储的时候竟然都变成0000-00-00 00:00:00.但是在中文操作系统上又是正常的。没办法只有转换了。

解决方案

其实很多时候Convert.ToDateTime()这个方法完全满足需求。可有些地方确实比较蛋疼,这里还是记录一下,加深印象。

方式一

    class Program
    {
        static void Main(string[] args)
        {
            // Summary:
            //     Initializes a new instance of the System.Globalization.CultureInfo class
            //     based on the culture specified by name and on the Boolean that specifies
            //     whether to use the user-selected culture settings from the system.
            //
            // Parameters:
            //   name:
            //     A predefined System.Globalization.CultureInfo name, System.Globalization.CultureInfo.Name
            //     of an existing System.Globalization.CultureInfo, or Windows-only culture
            //     name. name is not case-sensitive.
            //
            //   useUserOverride:
            //     A Boolean that denotes whether to use the user-selected culture settings
            //     (true) or the default culture settings (false).
            System.Globalization.DateTimeFormatInfo dtInfo = new System.Globalization.CultureInfo("en-Us",true).DateTimeFormat;
            //Gets or sets the custom format string for a short time value.
            dtInfo.ShortTimePattern = "t";
            DateTime dt = DateTime.Parse("05-28-15 03:07PM ", dtInfo);
            Console.WriteLine(dt);
            Console.Read();
        }

输出

方式二

            string strDt = "2014-03-02 03:07PM";
            strDt = strDt.Trim("PM".ToCharArray());
            DateTime dt =Convert.ToDateTime(strDt).AddHours(12);
            Console.WriteLine(dt);

总结

这也是在开发中遇到的一个问题,觉得好奇,就查看了下实现方式,遇到了,就记录下吧。

 

posted @ 2015-05-30 12:37  wolfy  阅读(2838)  评论(0编辑  收藏  举报