修改操作系统时间

    internal class LocalTimeHelper
    {
        [StructLayout(LayoutKind.Sequential)]
        struct SystemTime
        {
            public UInt16 Year;
            public UInt16 Month;
            public UInt16 DayOfWeek;
            public UInt16 Day;
            public UInt16 Hour;
            public UInt16 Minute;
            public UInt16 Second;
            public UInt16 Millisecond;

            public DateTime ToDateTime()
            {
                return new DateTime(Year, Month, Day, Hour, Minute, Second, Millisecond);
            }

            public SystemTime FromDateTime(DateTime value)
            {
                Year = (UInt16)value.Year;
                Month = (UInt16)value.Month;
                Day = (UInt16)value.Day;
                Hour = (UInt16)value.Hour;
                Minute = (UInt16)value.Minute;
                Second = (UInt16)value.Second;
                Millisecond = (UInt16)value.Millisecond;

                return this;
            }

            public static implicit operator DateTime(SystemTime value)
            {
                return value.ToDateTime();
            }

            public static implicit operator SystemTime(DateTime value)
            {
                return new SystemTime().FromDateTime(value);
            }
        }

        [DllImport("kernel32.dll")]
        static extern int SetSystemTime(ref SystemTime systemTime);
        [DllImport("Kernel32.dll")]
        static extern void GetSystemTime(ref SystemTime sysTime);

        public static bool SetSystemLocalTime(DateTime value)
        {
            SystemTime time = value.ToUniversalTime();
            var res = SetSystemTime(ref time);
            return res != 0;
        }

        public static DateTime GetSystemLocalTime()
        {
            var time = new SystemTime();
            GetSystemTime(ref time);
            DateTime res = ((DateTime)time).ToLocalTime();

            return res;
        }
    }
时间: 2024-10-29 14:52:40

修改操作系统时间的相关文章

Oracle 数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha 1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的. 基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 对rac 1.对数据库本身而言,有影响,因为CRS需要节点的os时间保持同步,否则可能会引起节点驱逐. 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影

详解Oracle数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的.   基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 推荐:安装oracle10g时候注意事项&修改oracle数据库字符集编码 [安装oracle10g时候注意事项:1. 关闭网络连接2.……修改oracle数据库字符集编码:先用syst

【转】修改LINUX时间

命令格式为: date -s 时间字符串 例如只修改系统的日期,不修改时间(时分秒) date -s 2012-08-02 或只修改时间不修改日期 date -s 10:08:00 当然也可以同时修改日期和时间 date -s "2012-05-18 04:53:00" 注意:由于日期和时间之间有空格,所以必须用引号引起来,否则命令会报错. 上述修改只是修改了linux的系统时间,CMOS中的时间可能还没有改变,所以为了保险,需要使用 clock -w 把当前系统时间写入到CMOS中.

Linux操作系统时间与BIOS硬件时间

在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间),另一个是操作系统时间.硬件时钟由BIOS电池供电, 当计算机关机后,会继续运行. 时间是有时区的,无论硬件时间还是操作系统时间,都有时区,默认情况下,Ubuntu的硬件时间使用UTC时间,配置文件为 /etc/default/rcS,建议使用UTC时间:而操作系统时间的时区对应的配置文件为/etc/timezone,如果你想修改,那最好使用 sudo dpkg-reconfigure tzdata来修改时区,不建议直接修改

linux下如何修改系统时间

我们一般使用"date -s"命令来修改系统时间.比如将系统时间设定成2018年2月23日的命令如下. #date -s 02/23/2018 将系统时间设定成下午11点12分0秒的命令如下. #date -s 11:12:00 注意,这里说的是系统时间,是linux由操作系统维护的. 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现.为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS.由于该同步

Centos修改系统时间

本人在下午在做nginx日志访问实验成功后发生访问的记录的时间不对,故特地在往上搜寻了centos修改系统时间的命名,呵呵.虽然简单,但是以前也曾经操作过,容易忘记,所以还是收藏起来以便以后用的时候忘记呢. #date 查看系统时间 如下图所示 2 #date -s 修改时间 看下面的例子#date -s  03/04/2013(将系统日期设定为2013年03月04日) 3 #date -s  110:38(将系统时间设定为上午 10:38) 4 修改完后执行:clock -w  ,强制将时间写

实例365(2)---------调用系统api修改系统时间

一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace SetDate { public partial cl

Linux 自动更新系统及手动查看、修改系统时间

当我们在虚拟机装完一个新的centos系统后,虽然在安装时己在ntp设置中选择了上海,但进入到系统,输入date命令时,查看到的系统时间与现时时间是不一样的,我们可以用以上方法来查看,自动更新和修改系统时间 查看系统时间: [[email protected] ~]# date Sat Mar 25 00:47:59 CST 2017 一. Linux 自动更新时间 使用ntpdate命令进行更新: [[email protected] ~]# ntpdate time.nist.gov 24 

Linux服务器修改时区时间

时间的一致性很关键,对于日志的分析和程序的对接都至关重要! 01.tzselect 修改时区 可以使用命令 tzselect,修改时区.操作示例: $ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) A