获取北京时间

 1 using Newtonsoft.Json;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Configuration;
 5 using System.Dynamic;
 6 using System.Linq;
 7 using System.Net;
 8 using System.Net.Http;
 9 
10 namespace VerifyServerTime
11 {
12     class Program
13     {
14         private static readonly string DEFAULT_Net = "http://www.baidu.com";
15         static void Main(string[] args)
16         {
17             Run();
18         }
19         private static void Run()
20         {
21             var client = new HttpClient();
22             var result = client.GetAsync(DEFAULT_Net).Result;
23             var BeijingTime = result.Headers.Date.Value.LocalDateTime;
24 
25             var SystemTime = DateTime.Now;
26             DateTime dateTime1 = Convert.ToDateTime(BeijingTime);
27             DateTime dateTime2 = Convert.ToDateTime(SystemTime);
28             TimeSpan ts1 = new TimeSpan(dateTime1.Ticks);
29             TimeSpan ts2 = new TimeSpan(dateTime2.Ticks);
30             TimeSpan ts = ts1.Subtract(ts2).Duration();
31             var dateDiff = ts.Days.ToString() + "" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "";
32 
33             Console.WriteLine("北京时间:" + BeijingTime);
34             Console.WriteLine("服务器时间:" + SystemTime);
35 
36             var DiffSeconds = int.Parse(ConfigurationManager.AppSettings["DiffSeconds"]);
37             var EnterpriseWechatApi = ConfigurationManager.AppSettings["EnterpriseWechatApi"];
38 
39             if ((Math.Abs(ts.Seconds) > DiffSeconds) || ts.Minutes>0)
40             {
41                 //获取iPv4地址
42                 IPAddress iip = Dns.GetHostAddresses(Dns.GetHostName()).FirstOrDefault(a => a.AddressFamily.ToString().Equals("InterNetwork"));
43 
44                 var client2 = new HttpClient();
45                 string msg = string.Format(@"【{0}】服务器时间:{1},北京时间:{2},时间差异:{3}", iip, SystemTime, BeijingTime , dateDiff);
46                 string json = MessageContent(msg);
47                 HttpContent content = new StringContent(json);
48                 content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
49                 var result2 = client2.PostAsync(EnterpriseWechatApi, content).Result;
50                 Console.WriteLine("时间差异:" + json);
51             }
52             //var c = Console.ReadLine();
53             //if (c == "1")
54             //{
55             //    Run();
56             //}
57         }
58 
59         private static string MessageContent(string msg)
60         {
61             List<string> mentioned_list = new List<string>();
62             mentioned_list.Add("@sol");
63             mentioned_list.Add("@all");
64 
65             Dictionary<string, object> matchKV = new Dictionary<string, object>();
66             matchKV.Add("content", msg);
67             matchKV.Add("mentioned_list", mentioned_list);
68             dynamic obj = new ExpandoObject();
69             obj.msgtype = "text";
70             obj.text = matchKV;
71 
72             string json = JsonConvert.SerializeObject(obj);
73             return json;
74         }
75     }
76 
77   
78 }
原文地址:https://www.cnblogs.com/1659666966/p/12874540.html