我知道Visual Studio生成的版本字符串是基于编译运行时的日期/时间。假设由Visual Studio生成的部分版本字符串为“3856.24352”,如何将其转换为编译所在的日历日期?
我知道Visual Studio生成的版本字符串是基于编译运行时的日期/时间。假设由Visual Studio生成的部分版本字符串为“3856.24352”,如何将其转换为编译所在的日历日期?
完整的版本字符串格式为major.minor.build.revision。其中build部分是自2000年1月1日以来的天数,而revision部分是距午夜的秒数除以2(有关详细信息,请参见此处)。
假设您的版本字符串是自动递增的类型,并且已经取出了build.revision部分,您可以使用以下方法将其转换回日期:
string buildRevision = "3856.24352";
string[] parts = buildRevision.Split('.');
int build = int.Parse(parts[0]);
int revision = int.Parse(parts[1]);
DateTime dateTimeOfBuild = new DateTime(2000, 1, 1)
+ new TimeSpan(build, 0, 0, 0)
+ TimeSpan.FromSeconds(revision * 2);
使用此代码将获得一个DateTime
,表示生成构建的时间(对于您的示例,它是2010年7月23日下午13:31:44)。
这里是一个简单的JavaScript工具,用于将.Net版本转换为日期:
示例输入:
1.0.7769.27451
示例输出:
2021年5月9日下午3:15:02
function convertBuildNumberToDate()
{
var buildString = document.getElementById("input").value.split(".");
var buildNumber = Number(buildString[2]);
var revision = Number(buildString[3]);
var date = new Date(2000, 1, 1);
date.setDate(buildNumber);
date.setSeconds(revision * 2);
var output = date.toLocaleString();
document.getElementById("output").innerHTML = output;
}
Build Number:
<br />
<input id="input" value="1.0.7769.27451" />
<button onclick="convertBuildNumberToDate()">Convert</button>
<br />
<br />
Build Date:
<br />
<div id="output"></div>