优秀的编程知识分享平台

网站首页 > 技术文章 正文

Windows系统安装日期如何修改(win10系统安装日期)

nanyue 2025-03-28 19:29:42 技术文章 3 ℃

当系统安装的时候,某种原因(没网或其它)导致安装日期不是当前日期,明明今天安装,日期却显示不对,有强迫症的我,带着问题去研究发现: 在注册表修改InstallDate无效(直接转当前日期为时间戳无法正确修改)

进入Windows注册表步骤:

运行->输入regedit->回车(或者CMD输入regedit->回车)

输入:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion->回车

百度一番原因如下:

“我的电脑-属性-系统-关于”里面的安装日期是改InstallTime;InstallDate是CMD里的systeminfo的安装日期。

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. 197001/01与1601/01/01的时间间隔是11644473600秒。

知道原因了,怎么获取计算InstallTime?

当然你可以手工计算,太麻烦了,本次通过复制粘贴就可以拿到你要修改的InstallDate和InstallTime

操作步骤:

到iconJava 在线工具 | 菜鸟工具输入框https://c.runoob.com/compile/10/

复制以下代码:

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

public class WindowsTimeTest {

public static void main(String[] args) {

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

//修改成你要改的日期时间

String dateTime2 = "2022-08-24 01:00:00";

try{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//日期时间,毫秒

long time2 = sdf.parse(dateTime2).getTime();

//毫秒转为秒

System.out.println("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("系统->关于->安装日期:"+multiply.toPlainString().substring(0,18));

}catch(Exception e){

}

}

}

运行程序,查看结果

3.进入Windows注册表(参考上面进入Windows注册表步骤),修改的时候选则十进制方式填写,然后确认

4.最后查看修改结果

  • 系统->关于->安装日期

CMD->systeminfo->安装日期

最近发表
标签列表