Windows 7 - display date using small icons

I recently upgraded to Windows 7 and need the date displayed with the time. This works, but only if I use large icons in the taskbar settings which is quite ugly.

How do I display the time and date when only using small taskbar icons?


Solution 1:

I had absolutely no luck with the up-voted Skinny Clock utility. Instead I tried "TClock", which was mentioned in a side conversation as not being compatible with Windows 7 circa 2009. Apparently we didn't have long to wait- in 2010 an update was released that is fully compatible with Windows 2000/XP/2003/Vista/2008/7 32 & 64 bit.

TClock 2010 works like a charm for me, and has every option I could imagine needing. The original developer has since discontinued development, but others have picked up the project.

You can download the original TClock 2010 Build 95 from the author's DonationCoder forum post, or from a fan mirror; both should have an md5sum of 8bbdc9344c223ee24bafd944cecbd507. The developer also released the source code, which continues to be developed.

Note: I have only tested Build 95, the last produced by the original developer.

Aside from the clock itself, its ability to have a global hotkey open a quick calendar is especially helpful. As an added bonus the application is (mostly) self-contained and doesn't require administrative privileges.

My setup with TClock 2010 Build 95, Windows 7 Enterprise 64-bit, and small taskbar icons:

TClock 2010, Windows 7 Enterprise 64-bit

Solution 2:

Problem

Consider this scenario: you have the taskbar positioned at bottom or top while using small icons. You want to see both date and time, but only the latter is displayed.

This behavior is by design.


Proposed solutions so far

  • Enlarging the taskbar to be twice as tall @techie007
    While it works, the taskbar gets even bigger then the default one while using large icons.

  • Positioning the taskbar vertically @techie007
    Some may still prefer having the taskbar at the bottom or at the top.

  • Reducing the Dots per Inch (DPI) setting below 100% @Molly7244
    Not really an option since icons will just look bad/distorted, and text might not be rendered correctly anyway. There could be other side effects too; it's basically an unsupported registry hack.

  • Using a third party application - Skinny Clock @Frank
    Considering the program has other features it requires some tweaking to get a no-frills experience. It has an override feature which can replace the taskbar clock and display a custom date/time format. It's an experimental feature and while it might work for some people (for whatever reason the program stopped working after some testing), the rendered text won't be positioned properly, and it will be not as sharp looking as the original one.

  • Using a third party application - T-Clock @Terrance
    Definitely a better alternative that Skinny Clock since it's more lightweight. The default settings are not good enough but can be easily customized. The position can be adjusted too. Just like Skinny Clock, text rendering isn't perfect no matter which quality setting you choose. If the program crashes or gets terminated forcefully, the explorer shell will crash.

  • Adding a new toolbar and change it to display large icons @Tomas
    The taskbar will be slightly bigger compared to the default one, and at the same time too small to handle two rows of applications like @techie007's solution.


Alternate solution: date toolbar hack

The idea is to create a new toolbar pointing to a folder whose only content is a shortcut file which gets renamed depending on the system date. A taskbar toolbar, a shortcut file, a batch script, and a scheduled task: that's all it takes.

Here's the end result:

toolbar hack

Preliminary steps

  1. Create a folder called DateToolbarHack in C:\Users\<Name> (or wherever you like).
  2. Create a new folder inside DateToolbarHack and name it Date.

Shortcut file

  1. Open the Control Panel and go to Clock, Language and Region.
  2. Right-click Date and Time and select Create Shortcut from the context menu.
  3. Move the shortcut from the desktop to the Date folder.

Batch script

  1. Copy the following code and paste it in a new file called UpdateToolbar.cmd inside the DateToolbarHack folder:

    @echo off
    setlocal enabledelayedexpansion
    cd /d "%~dp0\Date"
    call :getShortDate
    ren *.lnk %month%-%day%.lnk
    exit /b
    
    :getShortDate
    for /f "skip=1 tokens=1-3" %%A in ('wmic path Win32_LocalTime get day^,month^,year /value /format:table') do (
    set day=00%%A
    set day=!day:~-2!
    set month=00%%B
    set month=!month:~-2!
    set year=%%C
    set year=!year:~-2!
    exit /b
    )
    
  2. Run the batch script and make sure the link got renamed.

How it works

After setting the working directory it will retrieve the current date and then rename the shortcut file. The code to get the current date was partially borrowed from this page: http://ss64.com/nt/syntax-getdate.html

Scheduled task

  1. Open the Task Scheduler (taskschd.msc) and click Action > Create Task.
  2. Name it DateToolbarHack.
  3. While in the General tab, click Change User or Group.
  4. Type system in the textbox, click Check Names, and then click OK.
  5. Change the Configure for value to Windows 7, Windows Server 2008 R2.
  6. Select the Triggers tab, and click New.
  7. Change the Begin the task to At log on, then press OK.
  8. Click New, select On workstation unlock, and press OK.
  9. Click New, and select On a schedule. Change the setting to Daily and replace the Start time with 12:00:00 AM (midnight). Press OK.
  10. Switch to the Actions tab, and click New.
  11. Type "X:\Path\to\UpdateToolbar.cmd" in the Program/script textbox, replacing it with the actual file path.
  12. Click the Conditions tab and uncheck Start the task only if the computer is on AC power option.
  13. Select the Settings tab, and uncheck the Allow task to be run on demand field.
  14. Enable the Run task as soon as possible after a scheduled start is missed option.
  15. Leave all other settings to default values and press OK.

Taskbar toolbar

  1. Right-click the taskbar and uncheck the Lock the Taskbar option from the context menu.
  2. Click the taskbar again and choose Toolbars > New Toolbar.
  3. Select the Date folder.
  4. Right-click the newly created toolbar, and uncheck the Show Title option from the menu.
  5. Move the toolbar to the position you prefer.
  6. Enable the Lock the Taskbar option.

Customization

You can choose any icon you like for the shortcut. The date format can be adjusted by changing the following line in the batch script:

ren *.lnk %month%-%day%.lnk

In this case we have the %month% first followed by the %day%. The separator is -. You can invert their order or you can add the %year% too.

ArtOfWarfare's customized script to print out, IE, Sat Aug 2 instead:

echo off
setlocal enabledelayedexpansion
cd /d "%~dp0\Date"
call :getShortDate
ren *.lnk "%dayofweek%, %month% %day%.lnk"
exit /b

:getShortDate
for /f "skip=1 tokens=1-3" %%A in ('wmic path Win32_LocalTime get day^,dayofweek^,month /value /format:table') do (
    set day=%%A

    if "%%B"=="0" set dayofweek="0"
    if "%%B"=="1" set dayofweek="Mon"
    if "%%B"=="2" set dayofweek="Tue"
    if "%%B"=="3" set dayofweek="Wed"
    if "%%B"=="4" set dayofweek="Thu"
    if "%%B"=="5" set dayofweek="Fri"
    if "%%B"=="6" set dayofweek="Sat"
    if "%%B"=="7" set dayofweek="7"

    if "%%C"=="1"  set month="Jan"
    if "%%C"=="2"  set month="Feb"
    if "%%C"=="3"  set month="Mar"
    if "%%C"=="4"  set month="Apr"
    if "%%C"=="5"  set month="May"
    if "%%C"=="6"  set month="Jun"
    if "%%C"=="7"  set month="Jul"
    if "%%C"=="8"  set month="Aug"
    if "%%C"=="9"  set month="Sep"
    if "%%C"=="10" set month="Oct"
    if "%%C"=="11" set month="Nov"
    if "%%C"=="12" set month="Dec"

    exit /b
)

Known limitations

  • There should never be anything in the Date folder except for the one link you created.
  • You can't use Windows reserved characters as separators:

    < > : " / \ | ? *