47

My Windows 10's time format is 24 hour clock, this includes the taskbar but the lock screen is still 12 hour clock format. How do I change the format of my time in lockscreen?

1
75

Same here; I was able to get the lock screen to show HH:MM via my personal account with admin privileges, no hidden admin account needed. This is how:

  1. Press Win+R, type intl.cpl and press Enter (this will open "Region" settings)

  2. Set your "Short Time" & "Long Time" formats in the window that comes up, then click "Apply."

  3. Select the "Administrative" tab at the top, then click the "Copy settings..." button.

  4. In the subsequent window, check the box for "Welcome screen and system accounts."

  5. Click the "OK" button and lock the PC with Win+L to test it.

8
  • Even if you are totally logged off? – TungstenX Oct 13 '15 at 18:57
  • 8
    + for not using tons of screenshots – janot Mar 3 '16 at 15:14
  • Just to confirm this worked. Even after rebooting the lock screen had the 24 hour format. Thanks. – Dean Kuga Apr 23 '16 at 21:45
  • I believe that between Copy settings... and OK you also have to check the box next to Welcome screen and system accounts--otherwise you're not changing anything, no? – Mathieu K. Apr 21 '17 at 2:47
  • Unfortunately this didn't work for me :/ – maracuja-juice Feb 12 '18 at 12:50
22

I've figured out a better answer than hacking the registry... Thanks to zppinto for putting me on the right track. The problem remained that the time format was still US when no user is logged in.

First activate the hidden administrator user account:

  1. Run the Command Prompt as administrator
  2. Type in net user to see all the user accounts
  3. Type in net user administrator /active:yes to activate the hidden administrator user account
  4. Type in net user administrator * to give the administrator user a password - always a good idea
  5. Press Ctrl+Alt+Del to Switch users (or logout and log into Administrator account.

    In the administrator account:

    • Open the control panel and click on Change date, time or number format

      enter image description here

    • Change the Format: on the Formats tab and click on Additional Settings... button (Note: you may want to do language thing here as well, in order to copy it over to the Welcome Screen, etc)

      enter image description here

    • Click on Time tab and make sure the correct time format is being used (also the date format, etc)

      enter image description here

    • Back on the Region dialogue box click on the Administrative tab and click on Copy settings... button

      enter image description here

    • Tick the Welcome screen and system accounts and New user accounts check box to copy the settings to all the Welcome Screen

      enter image description here

      enter image description here

Note: my settings took a long time to copy over; thus be a little patient - as the doctor said to the dwarf

3
  • 5
    Thank you very much for the detailed explanation. I am very annoyed by the 12-hour format on my lock screen. Finally it's fixed! – wujj123456 Aug 29 '15 at 6:39
  • You don't have to activate the built-in Administrator account, any administrator account will do. I just did that (starting from "In the administrator account") on my PC -- from my own personal, administrator account -- and it worked. (I had the exact same problem) – Smiley Barry Sep 6 '15 at 19:02
  • Actually, I had to activate the built-in Admin. I didn't have the button to copy the settings to the welcome screen and I am an Admin user :s Believe me; I've tried a lot of things before getting to this point. The problem is the Date/Time format before you log in is US (The only country to use that format? but we all have to?) – TungstenX Sep 7 '15 at 6:36
4

Have you tried to:

  • Go to "Settings" -> "Language and Time" -> and on "format" -> "change date and time formats"?
  • Or go to "Control Panel" -> "clock, language and region" -> "change date formats, time or number" and then change the format? You can also have look at "Additional settings" on that window to see if everything is formatted as expected.

If none of that works, I think only solution will be editing the windows registry. There are some tutorials for Windows 8. I think it will be compatible with Windows 10 too.

3
  • In all settings, including registry the short time is HH:mm, long time is HH:mm:ss – TungstenX Aug 25 '15 at 11:06
  • 1
    Hum... And the registry key "Clock" is set to "24HourClock"? – zppinto Aug 25 '15 at 11:18
  • Yes it is. I've changed the owner of the Control panel (eightforums.com/tutorials/…) in order to change permissions of LocaleInfo (still couldn't change LocaleInfo's permissions) but now it shows 24 hour clock :s weird - seems that we are supposed to be too stupid to change the display clock – TungstenX Aug 25 '15 at 11:40
1

PowerShell method:

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null 
$internationalPaths = @("HKU:\.DEFAULT\Control Panel\International","HKCU:\Control Panel\International")
$hourFormat = "h"
IF($TimeFormat -eq '24h')
{
    $hourFormat = "H"
}       
FOREACH ($path in $internationalPaths)
{
    IF((Get-ItemProperty $path).'sTimeFormat')
    {
        #Windows 10 default time format h:mm:ss tt
        Set-ItemProperty -Path $path -Name "sTimeFormat" -Value "$hourFormat`:mm:ss tt"
    }
    IF((Get-ItemProperty $path).'sShortTime')
    {
        #Windows 10 default time format h:mm tt
        Set-ItemProperty -Path $path -Name "sShortTime" -Value "$hourFormat`:mm tt"
    }
}

More details How to change Windows 10 Lock screen time format by PowerShell

1

Thanks to the PowerShell code provided by frank. Heres what I ended up with, a bit shorter and cleaner IMO.

[string[]]$('Registry::HKEY_USERS\.DEFAULT\Control Panel\International','Registry::HKEY_CURRENT_USER\Control Panel\International').ForEach{
    # Country
    $null = Set-ItemProperty -Path $_ -Name 'iCountry' -Value '47' -Type 'String' -Force
    $null = Set-ItemProperty -Path $_ -Name 'sCountry' -Value 'Norway' -Type 'String' -Force
    # Date
    $null = Set-ItemProperty -Path $_ -Name 'sLongDate' -Value 'dddd dd. MMMM yyyy' -Type 'String' -Force
    $null = Set-ItemProperty -Path $_ -Name 'sShortDate' -Value 'dd.MM.yyyy' -Type 'String' -Force
    # Decimal
    $null = Set-ItemProperty -Path $_ -Name 'sDecimal' -Value '.' -Type 'String' -Force
    $null = Set-ItemProperty -Path $_ -Name 'sMonDecimalSep' -Value ',' -Type 'String' -Force
    # Time
    $null = Set-ItemProperty -Path $_ -Name 'sTimeFormat' -Value 'HH:mm:ss' -Type 'String' -Force
    $null = Set-ItemProperty -Path $_ -Name 'sShortTime' -Value 'HH:mm' -Type 'String' -Force
    $null = Set-ItemProperty -Path $_ -Name 'sYearMonth' -Value 'MMMM yyyy' -Type 'String' -Force
}
1

A simpler solution which worked for me wanting to display it in 24hr format in the UK.

  1. Navigate to the Control Panel
  2. Click on Region
  3. Change the Format from English (United Kingdom) to English (United States)
  4. Click Apply
  5. Change the Format back to English (United Kingdom)
  6. Click Apply, then click OK

Inherently there is something behind the scenes with Windows which changes the date and time format at a system level, despite still displaying it in the correct UK format at the front end. I'm led to believe this is for Windows updates as it connects to US servers which needs the US format. I work with Time and Attendance software and this has been an issue for us since Vista and still there in Windows 10 (though less aggressively). I've just done this on my new PC and it worked, though time will tell if Windows Updates changes it back.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.