C# 定时作业取固定服务器的时间格式

本文介绍在Windows服务器环境下,如何统一系统时间格式为24小时制,并通过定时任务代码实现特定时间点的任务触发,包括每小时的数据日志获取及关键时间点的系统操作。

WINDOWS服务器的系统时间格式,有2种:24小时和12小时。

12小时格式:  7:30

24小时格式: 07:30

 

服务器上不固定的使用这两种格式中的哪一种,如果直接用System.DateTime.Now来取,得到的格式就同服务器格式相同,是不固定的。

 

但在定时程序代码的使用中,时间格式会转成字符串,而字符串对比,只能明确一种格式,所以在取时间时,

我固定使用格式化24小时: string now = DateTime.Now.ToString("HH:mm");    

这样我的时间点字符串就都是 HH:mm (07:30) 这种格式了。

 

 

 private void m1()
        {
            while (true)
            {
                try
                {
                    Thread.Sleep(10 * 1000); //10秒对比一次系统时间
                    string now = DateTime.Now.ToString("HH:mm");     //得到现在的时间,注意,两个HH,是24小时,前面会填0,系统时间被格式为01:12而不是1:12。后面对比就不会错误了!
                                      
                    toolStripStatusLabel1.Text = "Server live time: "+ now;

                    //时间点任务
                    if (now.Equals("23:50")) //时间点格式 01:12
                    {
                        toolStripButton1.PerformClick();
                        toolStripButton2.PerformClick();                
                        Thread.Sleep(1000 * 60);//延迟一分钟,避免一分钟内发多次
                    }


                    //时间点任务
                    if (now.Equals("23:55")) //时间点格式 01:12
                    {
                        toolStripButton5.PerformClick();//一天中最后的时间检查报告发管理员
                        Thread.Sleep(1000 * 60);//延迟一分钟,避免一分钟内发多次
                    }


                    //每小时取PO服务器日志
                    if (now.Equals("00:59") || now.Equals("01:59") || now.Equals("02:59") || now.Equals("03:59") || now.Equals("04:59") ||
                        now.Equals("05:59") || now.Equals("06:59") || now.Equals("07:59") || now.Equals("08:59") || now.Equals("09:59") ||
                        now.Equals("10:59") || now.Equals("11:59") || now.Equals("12:59") || now.Equals("13:59") || now.Equals("14:59") ||
                        now.Equals("15:59") || now.Equals("16:59") || now.Equals("17:59") || now.Equals("18:59") || now.Equals("19:59") ||
                        now.Equals("20:59") || now.Equals("21:59") || now.Equals("22:59") || now.Equals("23:59"))
                    {

                        DateTime NowDT = DateTime.Now;//先取当前时间点(最后一分钟这个时间点)
                        Thread.Sleep(60*1000);//延迟一分钟后,进入下一个小时里程序工作,取上一个小时的完整的全部数据
                        EveryHourReadLog(NowDT);
                      
                    }

                }

                catch (Exception e1)
                {                 
                    ps(listBox1, e1.Message);
                }
            }
        }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值