获取Nist的美国官方标准时间的解决办法

简介: 今天在csdn上见网友在问如何获取Nist的美国官方标准时间,经摸索、查资料和自己实践后。做出以下代码,已测试。思路其实还是很简单的:       1、发出对于指定网页的访问请求       2、获取返回的html文件,进行模式匹配定位和分割,即取得了对应的时间和日期       此方法,对于其他地方需从网页获取信息有可参考的。
       今天在csdn上见网友在问如何获取Nist的美国官方标准时间,经摸索、查资料和自己实践后。
做出以下代码,已测试。思路其实还是很简单的:
       1、发出对于指定网页的访问请求
       2、获取返回的html文件,进行模式匹配定位和分割,即取得了对应的时间和日期
       此方法,对于其他地方需从网页获取信息有可参考的。

 命名空间需添加:
using System.Net;                                   
using System.IO;                                   
using System.Text.RegularExpressions;

方法代码:
img_a6339ee3e57d1d52bc7d02b338e15a60.gif // 获取美国官方时间和日期
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
         private   void  GetNistTimeUS(  out   string  time,  out   string  Data )
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif {
img_33d02437d135341f0800e3d415312ae8.gif            
try
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                
//nist.time.gov的url
img_33d02437d135341f0800e3d415312ae8.gif
                string strNistUrl = "http://nist.time.gov/timezone.cgi?UTC/s/0";
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif                
//构造并实例化一个WebRequest
img_33d02437d135341f0800e3d415312ae8.gif
                System.Net.WebRequest myHttpWebRequest = System.Net.HttpWebRequest.Create( strNistUrl );
img_33d02437d135341f0800e3d415312ae8.gif                
//设置连接超时时间
img_33d02437d135341f0800e3d415312ae8.gif
                myHttpWebRequest.Timeout = 8000;
img_33d02437d135341f0800e3d415312ae8.gif                
//设置WebResponse,接收返回信息
img_33d02437d135341f0800e3d415312ae8.gif
                System.Net.WebResponse myHttpWebResponse = myHttpWebRequest.GetResponse();
img_33d02437d135341f0800e3d415312ae8.gif                
//获取返回信息流信息
img_33d02437d135341f0800e3d415312ae8.gif
                Stream sr = myHttpWebResponse.GetResponseStream();
img_33d02437d135341f0800e3d415312ae8.gif                
//设置流阅读器
img_33d02437d135341f0800e3d415312ae8.gif
                StreamReader reader = new StreamReader(sr, System.Text.Encoding.ASCII);
img_33d02437d135341f0800e3d415312ae8.gif                
//流输出为字符串
img_33d02437d135341f0800e3d415312ae8.gif
                String srdata = reader.ReadToEnd();
img_33d02437d135341f0800e3d415312ae8.gif                
//将返回html文本中的双引号变为单引号
img_33d02437d135341f0800e3d415312ae8.gif
                srdata = srdata.Replace( "\"","\'");
img_33d02437d135341f0800e3d415312ae8.gif
                
img_33d02437d135341f0800e3d415312ae8.gif                
//用模式匹配加分割的方式定位和获取时间信息
img_33d02437d135341f0800e3d415312ae8.gif
                string strOut = Regex.Split( srdata, "color='white'><b>" , RegexOptions.IgnoreCase)[1];
img_33d02437d135341f0800e3d415312ae8.gif                
string strTime = Regex.Split( strOut , "<br>", RegexOptions.IgnoreCase )[0];
img_33d02437d135341f0800e3d415312ae8.gif                time 
= DateTime.Parse( strTime ).ToLongTimeString();
img_33d02437d135341f0800e3d415312ae8.gif                
img_33d02437d135341f0800e3d415312ae8.gif                
//用模式匹配加分割的方式定位和获取日期信息
img_33d02437d135341f0800e3d415312ae8.gif
                string strOut1 = Regex.Split( srdata, "'5' color='white'>" , RegexOptions.IgnoreCase)[1];
img_33d02437d135341f0800e3d415312ae8.gif                
string strData = Regex.Split( strOut1 , "<br>", RegexOptions.IgnoreCase )[0];
img_33d02437d135341f0800e3d415312ae8.gif                Data 
= DateTime.Parse( strData ).ToShortDateString();
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_33d02437d135341f0800e3d415312ae8.gif            
catch( System.Exception ex )
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                time 
= string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                Data 
= string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                MessageBox.Show( 
"获取时间出错:" + ex.Message );
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_05dd8d549cff04457a6366b0a7c9352a.gif        }

img_a6339ee3e57d1d52bc7d02b338e15a60.gif        
img_a6339ee3e57d1d52bc7d02b338e15a60.gif        
// 获取中国标准时间(由美国官方时间折算)
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
         private   void  GetNistTimeCN(  out   string  time,  out   string  Data )
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif {
img_33d02437d135341f0800e3d415312ae8.gif            
try
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                
//nist.time.gov的url
img_33d02437d135341f0800e3d415312ae8.gif
                string strNistUrl = "http://nist.time.gov/timezone.cgi?UTC/s/0";
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif                
//构造并实例化一个WebRequest
img_33d02437d135341f0800e3d415312ae8.gif
                System.Net.WebRequest myHttpWebRequest = System.Net.HttpWebRequest.Create( strNistUrl );
img_33d02437d135341f0800e3d415312ae8.gif                
//设置连接超时时间
img_33d02437d135341f0800e3d415312ae8.gif
                myHttpWebRequest.Timeout = 8000;
img_33d02437d135341f0800e3d415312ae8.gif                
//设置WebResponse,接收返回信息
img_33d02437d135341f0800e3d415312ae8.gif
                System.Net.WebResponse myHttpWebResponse = myHttpWebRequest.GetResponse();
img_33d02437d135341f0800e3d415312ae8.gif                
//获取返回信息流信息
img_33d02437d135341f0800e3d415312ae8.gif
                Stream sr = myHttpWebResponse.GetResponseStream();
img_33d02437d135341f0800e3d415312ae8.gif                
//设置流阅读器
img_33d02437d135341f0800e3d415312ae8.gif
                StreamReader reader = new StreamReader(sr, System.Text.Encoding.ASCII);
img_33d02437d135341f0800e3d415312ae8.gif                
//流输出为字符串
img_33d02437d135341f0800e3d415312ae8.gif
                String srdata = reader.ReadToEnd();
img_33d02437d135341f0800e3d415312ae8.gif                
//将返回html文本中的双引号变为单引号
img_33d02437d135341f0800e3d415312ae8.gif
                srdata = srdata.Replace( "\"","\'");
img_33d02437d135341f0800e3d415312ae8.gif
                
img_33d02437d135341f0800e3d415312ae8.gif                
//用模式匹配加分割的方式定位和获取时间信息
img_33d02437d135341f0800e3d415312ae8.gif
                string strOut = Regex.Split( srdata, "color='white'><b>" , RegexOptions.IgnoreCase)[1];
img_33d02437d135341f0800e3d415312ae8.gif                
string strTime = Regex.Split( strOut , "<br>", RegexOptions.IgnoreCase )[0];
img_33d02437d135341f0800e3d415312ae8.gif                
//小时需调整,因时区相差8小时
img_33d02437d135341f0800e3d415312ae8.gif
                time = DateTime.Parse( strTime ).AddHours( 8 ).ToLongTimeString();
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif                
//用模式匹配加分割的方式定位和获取日期信息
img_33d02437d135341f0800e3d415312ae8.gif
                string strOut1 = Regex.Split( srdata, "'5' color='white'>" , RegexOptions.IgnoreCase)[1];
img_33d02437d135341f0800e3d415312ae8.gif                
string strData = Regex.Split( strOut1 , "<br>", RegexOptions.IgnoreCase )[0];
img_33d02437d135341f0800e3d415312ae8.gif                
//获取中国时间-小时部分
img_33d02437d135341f0800e3d415312ae8.gif
                int intHourCn = int.Parse( time.Split( ':' )[0] );
img_33d02437d135341f0800e3d415312ae8.gif                
//获取美国时间-小时部分
img_33d02437d135341f0800e3d415312ae8.gif
                int intHourUS = int.Parse( DateTime.Parse( strTime ).ToLongTimeString().Split( ':' )[0] );
img_33d02437d135341f0800e3d415312ae8.gif                
//比较小时差异,调整日期差异
img_33d02437d135341f0800e3d415312ae8.gif
                if ( intHourCn < intHourUS )
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                    Data 
= DateTime.Parse( strData ).AddDays(1).ToShortDateString();
img_105a1e124122b2abcee4ea8e9f5108f3.gif                }

img_33d02437d135341f0800e3d415312ae8.gif                
else
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                    Data 
= DateTime.Parse( strData ).ToShortDateString();
img_105a1e124122b2abcee4ea8e9f5108f3.gif                }

img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_33d02437d135341f0800e3d415312ae8.gif            
catch( System.Exception ex )
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                time 
= string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                Data 
= string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                MessageBox.Show( 
"获取时间出错:" + ex.Message );
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_05dd8d549cff04457a6366b0a7c9352a.gif        }

调用代码:
img_a6339ee3e57d1d52bc7d02b338e15a60.gif          // 获取美国时间按钮
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
         private   void  btnGetTime_Click( object  sender, System.EventArgs e)
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif {
img_33d02437d135341f0800e3d415312ae8.gif            
try
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                
string strTime = string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                
string strDate = string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif                GetNistTimeUS( 
out strTime, out strDate );
img_33d02437d135341f0800e3d415312ae8.gif                txtTime.Text 
= strTime;
img_33d02437d135341f0800e3d415312ae8.gif                txtData.Text 
= strDate;
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_33d02437d135341f0800e3d415312ae8.gif            
catch( System.Exception ex )
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                MessageBox.Show( ex.Message );
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_05dd8d549cff04457a6366b0a7c9352a.gif        }

img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif        
// 获取中国时间按钮
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
         private   void  btnGetTimeCN_Click( object  sender, System.EventArgs e)
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif {
img_33d02437d135341f0800e3d415312ae8.gif            
try
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                
string strTime = string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif                
string strDate = string.Empty;
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif                GetNistTimeCN( 
out strTime, out strDate );
img_33d02437d135341f0800e3d415312ae8.gif                txtTime.Text 
= strTime;
img_33d02437d135341f0800e3d415312ae8.gif                txtData.Text 
= strDate;
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_33d02437d135341f0800e3d415312ae8.gif            
catch( System.Exception ex )
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{
img_33d02437d135341f0800e3d415312ae8.gif                MessageBox.Show( ex.Message );
img_105a1e124122b2abcee4ea8e9f5108f3.gif            }

img_05dd8d549cff04457a6366b0a7c9352a.gif        }
目录
相关文章
|
运维 Java Shell
手工触发Full GC:JVM调优实战指南
本文是关于Java应用性能调优的指南,重点介绍了如何使用`jmap`工具手动触发Full GC。Full GC是对堆内存全面清理的过程,通常在资源紧张时进行以缓解内存压力。文章详细阐述了Full GC的概念,并提供了两种使用`jmap`触发Full GC的方法:通过`-histo:live`选项获取存活对象统计信息,或使用`-dump`选项生成堆转储文件以分析内存状态。同时,文中也提醒注意手动Full GC可能带来的性能开销,建议在生产环境中谨慎操作。
|
存储 算法 安全
公共医疗数据库汇总:无需实验,高效论文撰写利器
在医学研究领域,获取高质量的数据和文献资源是进行科学论文撰写的关键。随着信息技术的发展,以及公共医疗数据库的不断壮大和完善,研究人员可以轻松地获取大量的医学数据和文献信息,从而提高论文撰写的效率和质量。本文将为您介绍一系列全面的公共医疗数据库,这些数据库不仅为您提供了丰富的医学资源,还无需进行实验,成为高效论文撰写的利器。
3922 1
|
存储 SQL 关系型数据库
项目实战典型案例12——mysql数据库 数据类型与表字段类型不一致导致索引失效
项目实战典型案例12——mysql数据库 数据类型与表字段类型不一致导致索引失效
515 0
|
人工智能
2023年8款好用免费可商用字体|标小智龙珠体
为了庆祝新的一年的开始,我筛选整理了一份8款实用且免费商用的中文字体清单。这些字体不仅易于使用,而且风格多样,可以用于logo设计、平面设计、标题设计等等,希望能够帮助到你。
2023年8款好用免费可商用字体|标小智龙珠体
|
机器学习/深度学习 自然语言处理 算法
AIGC背后的技术分析 | 知识图谱
知识图谱是知识工程的一个分支,以知识工程中语义网络作为理论基础,并且结合了机器学习、自然语言处理以及知识表示和推理的最新成果,在大数据的推动下受到了业界和学术界的广泛关注。知识图谱对于解决大数据中文本分析和图像理解问题发挥了重要作用。 下述内容使用知识图谱和深度学习进行数据分析,该案例需要使用pip工具安装以下第三方库:
4610 0
|
C# 数据安全/隐私保护 Windows
WPF技术之TextBox控件
WPF(Windows Presentation Foundation)的TextBox控件是用于用户输入和编辑文本的常见控件
1205 0
|
弹性计算 应用服务中间件 开发者
阿里云学生服务器购买价格及学生免费服务器配置领取条件
阿里云学生服务器原来活动为云翼计划,后来升级为开发者成长计划,现在在高校学生在家实践活动中可以领取免费云服务器和无影云桌面
9857 1
阿里云学生服务器购买价格及学生免费服务器配置领取条件
想考阿里云ACE需要做什么准备?考试费用是多少?
很多人现在想找 一个稳定、收入又高的工作,而在现在的大环境下,各行各业都不好做,只有互联网这样的虚拟经济能有所发展,于是很多人想往这一行转型,而已经从事这个工作多年的人,也希望能得到更好的发展。
想考阿里云ACE需要做什么准备?考试费用是多少?
|
存储 SQL API
VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别
VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别
|
缓存 运维 前端开发
大淘宝技术行业FaaS化实战经验分享
本文将分享我们在FaaS化过程中的经验,尝试回答关于FaaS的Why、What、How三个问题,给对FaaS有兴趣的同学提供一些实践经验。
1474 0
大淘宝技术行业FaaS化实战经验分享