diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets
index 697e4189673..873b7bde22e 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets
@@ -24,6 +24,10 @@
$(IsShipping)
+
+ $(SOURCE_DATE_EPOCH)
+
+
<_BuildNumber>$(OfficialBuildId)
- <_BuildNumber Condition="'$(OfficialBuildId)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1
+
+ <_BuildNumber Condition="'$(_BuildNumber)' == '' and '$(DeterministicTimestamp)' != '' and '$(DeterministicTimestamp)' != 'true' and '$(DeterministicTimestamp)' != 'false' and !$(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::FromUnixTimeSeconds($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1
+ <_BuildNumber Condition="'$(_BuildNumber)' == '' and $(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::Parse($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1
+ <_BuildNumber Condition="'$(_BuildNumber)' == ''">$([System.DateTime]::UtcNow.ToString(yyyyMMdd)).1