Below is what I pieced together but I wanted to see what other ways are available.
SET NOCOUNT ON;
GO
DECLARE @tz VARCHAR(50)
EXEC [master].[dbo].[xp_regread]
'HKEY_LOCAL_MACHINE'
,'SYSTEM\CurrentControlSet\Control\TimeZoneInformation'
,'TimeZoneKeyName'
,@tz OUT;
SELECT
GETDATE()
,'(' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),3),1)
+ '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),2),1)
+ '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),1),1) +')'
Output: 2014-10-14 16:22:21.037 (CST)
Best Answer
Reading the reg key with this or SQLCLR is the only correct way I know (I personally would create a job which updates a table instead of enabling xp_regread though.).
This powershell script is an example of how to update a config table with this information.
All other systems with offset etc are giving incorrect results.