yydy 发表于 2023-12-3 09:49:39

如何修改操作系统的安装时间

如何修改操作系统的安装时间?具体的操作方法如下:
打开注册表,快捷键win+r,然后输入regedit再回车,即可打开注册表编辑器。
找到下面路劲: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 右侧的InstallDate和InstallTime就是微软保存初始安装日期的键值,可以通过以 十进制 方式更改UNIX时间戳来更改这个时间。

InstallDate用systeminfo命令可以查看系统的安装和补丁信息。
InstallTime用我的电脑右键属性中查看

打开下面网站 http://tool.chinaz.com/Tools/unixtime.aspx 复制Unix时间戳(Unix timestamp),是十进制的数字,然后把它输入到InstallDate的十进制里面,关闭注册表即可。
也可直接复制以下代码到:https://c.runoob.com/compile/10/ 运行,直接计算出InstallDate和InstallTime的值
import java.math.BigDecimal;
import java.text.SimpleDateFormat;

/**
*
*
* @author Kelly
*
*/
public class WindowsTimeTest {
    public static void main(String[] args) {

      String dateTime1 = "1601-01-01 00:00:00";

      //修改成你要改的日期时间
      String dateTime2 = "2024-01-01 00:00:00";
      try{
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //日期时间,毫秒
            long time2 = sdf.parse(dateTime2).getTime();
            //毫秒转为秒
            System.out.println("InstallDate:CMD->systeminfo->安装日期:"+(time2/1000));

            long m = time2 - sdf.parse(dateTime1).getTime();
            //毫秒转为纳秒
            BigDecimal bigDecimal1 =BigDecimal.valueOf(m);
            BigDecimal bigDecimal2 =BigDecimal.valueOf(1000000);
            BigDecimal multiply = bigDecimal1.multiply(bigDecimal2);
            //取前18位输出
            System.out.println("InstallTime:系统->关于->安装日期:"+multiply.toPlainString().substring(0,18));


      }catch(Exception e){
      }
    }
}


修改installdata和installtime的值时均为十进制
小知识:

CMD里的systeminfo的安装日期是改:InstallDate
系统关于里面的安装日期是改:InstallTime
[*]InstallDate是从伦敦时间1970年1月1日到安装时间的总秒数
[*]InstallTime是从伦敦时间1601年1月1日到安装时间的总秒数
补充解析:
  windows FILETIME时间从1601/01/01 零时零分零秒开始计时,windows每个时钟滴答将计数加一,每个时钟滴答的间隔是100 nanoseconds(纳秒,1秒=10的九次方纳秒),即每个时钟滴答= 10 (-7)秒。  unix、linux时间是从1970/01/01零时零分零秒开始计数,每秒计数加1。1970/01/01与1601/01/01的时间间隔是11644473600秒。

yydy 发表于 2023-12-15 00:22:03

原运行代码错误,现已修改!已成功验证
页: [1]
查看完整版本: 如何修改操作系统的安装时间