惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
腾讯CDC
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
WordPress大学
WordPress大学
雷峰网
雷峰网
小众软件
小众软件
D
DataBreaches.Net
V
Visual Studio Blog
博客园 - Franky
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
博客园 - 聂微东
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
云风的 BLOG
云风的 BLOG

博客园 - liufu627

使用option 链式调用来代替异步方法幂调用 Rust 各种情况下如何修改变量 Rust 单链表的实现 Closure move 数值类型与引用类型的区别 rust 使用泛型来完成多态 # Rust异步网络编程 Rust学习 红黑树新解(删除) 红黑树新解(插入) WCF快速創建 dropdownlist - liufu627 - 博客园 ArcGIS安装 泛型OraHelper - liufu627 - 博客园 让SendKeys支持空格键 - liufu627 - 博客园 标点符号的英文说法 Hashtable 让哈希表顺序输出。 PDA datagrid问题 JSON.net的使用 关于C#测试Oracle数据库链接的问题
日期格式化 - liufu627 - 博客园
liufu627 · 2007-06-28 · via 博客园 - liufu627

        /// <summary>
        /// 将日期转化成指定格式,24制。YYYY: 年;MM:月;DD:日;HH:小时;mm:分钟;SS:秒;MS:毫秒。
        /// </summary>
        /// <param name="format"></param>
        /// <returns></returns>
        public static string ToString(DateTime dt, string format)
        {
            string year = dt.Year.ToString();
            string month = dt.Month.ToString("00");
            string monthSmall = dt.Month.ToString();
            string day = dt.Day.ToString("00");
            string daySmall = dt.Day.ToString();
            string hour = dt.Hour.ToString("00");
            string hourSmall = dt.Hour.ToString();
            string minute = dt.Minute.ToString("00");
            string minuteSmall = dt.Minute.ToString();
            string second = dt.Second.ToString("00");
            string secondSmall = dt.Second.ToString();
            string millisecond = dt.Millisecond.ToString();

            string value = format.Replace("YYYY", year);

            //,StringComparison.CurrentCulture
            if (value.IndexOf("MM") >= 0)
            {
                value = value.Replace("MM", month);
            }
            else
            {
                //防止替换M,使MS无效。
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < value.Length; i++)
                {
                    if (value[i] == 'M')
                    {
                        if (i + 1 < value.Length && value[i + 1] != 'S')
                        {
                            sb.Append(monthSmall);
                        }
                        else
                        {
                            sb.Append(value[i]);
                        }
                    }
                    else
                    {
                        sb.Append(value[i]);
                    }
                }
                value = sb.ToString();
            }

            if (value.IndexOf("DD") >= 0)
            {
                value = value.Replace("DD", day);
            }
            else if (value.IndexOf("D") >= 0)
            {
                value = value.Replace("D", daySmall);
            }

            if (value.IndexOf("HH") >= 0)
            {
                value = value.Replace("HH", hour);
            }
            else if (value.IndexOf("H") >= 0)
            {
                value = value.Replace("H", hourSmall);
            }

            if (value.IndexOf("mm") >= 0)
            {
                value = value.Replace("mm", minute);
            }
            else if (value.IndexOf("m") >= 0)
            {
                value = value.Replace("m", minuteSmall);
            }

            if (value.IndexOf("SS") >= 0)
            {
                value = value.Replace("SS", second);
            }
            else
            {
                //防止替换S,使MS无效。
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < value.Length; i++)
                {
                    if (value[i] == 'S')
                    {
                        if (i - 1 >= 0 && value[i - 1] != 'M')
                        {
                            sb.Append(secondSmall);
                        }
                        else
                        {
                            sb.Append(value[i]);
                        }
                    }
                    else
                    {
                        sb.Append( value[i]);
                    }
                }
                value = sb.ToString();
            }

            if (value.IndexOf("MS") >= 0)
            {
                value = value.Replace("MS", millisecond);
            }

            return value;
        }