ClockTime requires a number representing the hour, you want game.Lighting.TimeOfDay = TimeChange.
Another issue you will run into is when you create the dt and TimeChange variable the values are copied into place and will not change without another = assignment. Since they are outside of the while loop they will never change and neither will your TimeOfDay. Move them into the while loop like so
while task.wait(10) do
local dt = DateTime.now()
local TimeChange = dt:FormatLocalTime("LTS", "zh-cn")
game.Lighting.TimeOfDay = TimeChange
end
I think you could use ToUniversalTime add/subtract as many hours difference and create a new DateTime with DateTime.fromUniversalTime this will not take daylight savings into account though.
local myTime = DateTime.now()
-- convert to UTC-0
local utc = myTime:ToUniversalTime()
-- convert UTC-0 to UTC-6
local cst = DateTime.fromUniversalTime(utc.Year, utc.Month, utc.Day, utc.Hour - 6, utc.Minute, utc.Second)
-- read converted value
TimeOfDay = cst:FormatLocalTime("LTS", "zh-cn")