【C#公共帮助类】DateTimeHelper设置电脑本地时间,实际开发很需要
关于本文档的说明
本文档主要为了解决实际开发当中,服务器和客户端电脑时间不能相等的问题,纯干货,实际项目这种时间不同步的情况很多很多,时间不相等,到时候把本地的数据提交给服务器,服务器看实际上传时间和我写入数据库时间相差好大,影响实际业务操作和判断业务准确性,所以需要设置设备或者电脑的时间来为上传提供准确的时间节点。
欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利。
本人自从几年前走上编程之路,一直致力于收集和总结出好用的框架和通用类库,不管是微软自己的还是第三方的只要实际项目中好用且可以解决实际问题那都会收集好,编写好文章和别人一起分享,这样自己学到了,别人也能学到知识,当今社会很需要知识的搬运工。
Email:707055073@qq.com
本文章地址:http://www.cnblogs.com/wohexiaocai/p/5721906.html
1.基本介绍
实际开发中,我们需要测试电脑时间不是准确时间情况下对业务的影响就需要用到这个类,帮我们设置电脑正确的时间点。
一般我们是设置用户的电脑时间,不是服务器的时间哦,服务器的时间可以用NTP来进行统一设置的,科普:http://baike.baidu.com/link?url=Bq6U-qi2UFJSqMXaBJXNLemE69CEfpfrJmAx4HflvHgRIjP1v6hI2YZPyfabcgnjGNXP-yykPprAPtgRU3czna
2.如何获取正确的时间
要想获取到正确的时间,一般将我们服务器的时间获取到就可以,服务器的时间一般都是联网的,时间比较准确,实际项目中我们就是通过调用服务器的接口获取到当前时间的,这个并不难
#region public static string GetResponse(string url)
/// <summary>
/// 获取一个网页
/// </summary>
/// <param name="url">地址</param>
/// <returns>字符串返回值</returns>
public static string GetResponse(string url)
{
string result = null;
WebResponse webResponse = null;
StreamReader streamReader = null;
try
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";
webResponse = httpWebRequest.GetResponse();
streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
result = streamReader.ReadToEnd();
}
catch
{
// handle error
}
finally
{
if (streamReader != null)
{
streamReader.Close();
}
if (webResponse != null)
{
webResponse.Close();
}
}
return result;
}
#endregion
获取时间
3.设置电脑时间
得到时间就需要进行设置了,一般Windows系统都是通过DOS命令来设置电脑的时间所以这里也用了C#的DOS来设置
3.1 设置日期
有时候只需要设置电脑的年月日
public static void SetLocalDate(int year, int month, int day)
3.2 设置时间
有时候只需要设置电脑的时分秒
public static void SetLocalTime(int hour, int min, int sec)
3.3 设置年月日时分秒
有时候只需要设置电脑的时分秒
public static void SetLocalDateTime(DateTime time)
4.实战效果
经过win7、XP、windows server等测试后可以正常设置电脑时间,请大家可以正常使用,不实战怎么敢拿出来直接用呢?
5.源码下载
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
public class DateTimeHelper
{
/// <summary>
/// 设置本地电脑的年月日
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="day"></param>
public static void SetLocalDate(int year, int month, int day)
{
//实例一个Process类,启动一个独立进程
Process p = new Process();
//Process类有一个StartInfo属性
//设定程序名
p.StartInfo.FileName = "cmd.exe";
//设定程式执行参数 “/C”表示执行完命令后马上退出
p.StartInfo.Arguments = string.Format("/c date {0}-{1}-{2}", year, month, day);
//关闭Shell的使用
p.StartInfo.UseShellExecute = false;
//重定向标准输入
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//重定向错误输出
p.StartInfo.RedirectStandardError = true;
//设置不显示doc窗口
p.StartInfo.CreateNoWindow = true;
//启动
p.Start();
//从输出流取得命令执行结果
p.StandardOutput.ReadToEnd();
} /// <summary>
/// 设置本机电脑的时分秒
/// </summary>
/// <param name="hour"></param>
/// <param name="min"></param>
/// <param name="sec"></param>
public static void SetLocalTime(int hour, int min, int sec)
{
//实例一个Process类,启动一个独立进程
Process p = new Process();
//Process类有一个StartInfo属性
//设定程序名
p.StartInfo.FileName = "cmd.exe";
//设定程式执行参数 “/C”表示执行完命令后马上退出
p.StartInfo.Arguments = string.Format("/c time {0}:{1}:{2}", hour, min, sec);
//关闭Shell的使用
p.StartInfo.UseShellExecute = false;
//重定向标准输入
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//重定向错误输出
p.StartInfo.RedirectStandardError = true;
//设置不显示doc窗口
p.StartInfo.CreateNoWindow = true;
//启动
p.Start();
//从输出流取得命令执行结果
p.StandardOutput.ReadToEnd();
} /// <summary>
/// 设置本机电脑的年月日和时分秒
/// </summary>
/// <param name="time"></param>
public static void SetLocalDateTime(DateTime time)
{
SetLocalDate(time.Year, time.Month, time.Day);
SetLocalTime(time.Hour, time.Minute, time.Second);
}
}
}
【C#公共帮助类】DateTimeHelper设置电脑本地时间,实际开发很需要的更多相关文章
- iOS dateformatter设置GMT格式时间--iOS开发系列---项目中成长的知识四
今天在项目中开始接手客户端的签名这个模块,签名这个会在项目结束过后再单独写一下自己的心得! 今天讲讲在签名的过程中我们需要向服务器传送一个Date值,格式要求是格林威治时间,也就是GMT时间! 格式要 ...
- php获取时间问题,用默认配置读到本地时间。。。。。
用date获取到时间有8小时时差 因为php用date获取到的是格林威治时区的时间,而大陆时间和格林威治时间有8个小时时差,所以.... 修改:网上有各种修改方式: 比如:在程序中添加时间的初始化的语 ...
- 关于UTC时间和本地时间
收藏了个类Publics 可以实现本地时间和UTC时间的转换 UCT时间=本地时间-8 本地时间比UTC时间快8小时 element-ui的日期选择器上 选择的时间显示的是本地时间 但实 ...
- Util应用程序框架公共操作类(六):验证扩展
前面介绍了仓储的基本操作,下面准备开始扩展查询,在扩展查询之前,首先要增加两个公共操作类,一个是经常要用到的验证方法,另一个是Lambda表达式的操作类. 很多时候,我们会判断一个对象是否为null, ...
- Util应用程序框架公共操作类(五):异常公共操作类
任何系统都需要处理错误,本文介绍的异常公共操作类,用于对业务上的错误进行简单支持. 对于刚刚接触.Net的新手,碰到错误的时候,一般喜欢通过返回bool值的方式指示是否执行成功. public boo ...
- 【C#公共帮助类】给大家分享一些加密算法 (DES、HashCode、RSA、AES等)
AES 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的 ...
- 【C#公共帮助类】JsonHelper 操作帮助类, 以后再也不用满地找Json了,拿来直接用
四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换j ...
- 在client类中设置访问属性 address,business和individua
php 5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好.其实际的目的, 是为了有的场合想用多继承,但PHP又没多继承 ,于是就发明了这样的一个东西. Traits可以理解为一组能 ...
- 高级设置电脑系统windows7防火墙出错代码0×6D9原因与解决技巧
高级设置windows防火墙能够更好的保护电脑系统安全,在电脑系统windows7设置过程中难免会遇到某些问题,有用户在安装MRGT后想要打开SNMP的161端口,但在打开高级安全windows防火墙 ...
随机推荐
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...
- C++的性能C#的产能?! - .Net Native 系列向导
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- 人才市场的IT职位分析
最近要找长沙的工作,于是通过湖南人才市场搜索了一下职位.结果得到的数据让我很难比较,作为一个 IT 业滚爬了多年的程序员,对这样的搜索结果很不满意.于是,我不得不自己来整理数据了.本文内容包括:网页数 ...
- MyISAM和InnoDB
MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...
- golang reflect
golang reflect go语言中reflect反射机制.详细原文:地址 接口值到反射对象 package main import ( "fmt" "reflect ...
- 一次Mysql 死锁事故
故障描述: 简单描述一下需求:我们写的一个计步器的客户端软件,用户通过手机客户端将用户的运动计步信息传到服务器. 服务器侧记录每个用户每次上传明细,同时每个用户有一个汇总值,参与全省排名. 1.加入明 ...
- C#设计模式-模板方法模式
提到模板,大家肯定不免想到生活中的“简历模板”.“论文模板”.“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下 ...
- iOS-调试技巧
目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象 ...
- PowerDesigner成功生成PDM进行check model后的错误提示解决途径
1.existence of reference join------->缺少主键; 2.constraint name uniquesness-------->关联约束重名(refere ...
- WPF DatePicker只显示年和月 修改:可以只显示年
最近的项目,查询时只需要年和月,不需要日,因此需要对原有的DatePicker进行修改,查询了网上的内容,最终从一篇帖子里看到了添加附加属性的方法,地址是http://stackoverflow.co ...