For clarity, below is the fully working solution I used.
NOTE: I am using 24 hour time for the greeting but also converting the time to a 12 hour format and adding AM/PM for displaying the time.
@echo off &cls
mode con: cols=100 lines=40 &color f0
setLocal
REM Get current system date and time
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set currdatetime=%%I
echo. %currdatetime%
echo. YYYYMMDDhhmmss.(milliseconds)(always 000)+/-(minutes difference to UTC) &echo.
REM Get individual variables for date from %currdatetime%
set _day=%currdatetime:~6,2%
set _month=%currdatetime:~4,2%
set _year=%currdatetime:~-0,4%
REM Display examples
echo. Day: %_day%, Month: %_month% and Year: %_year%
echo.
echo. USA Date: %_month%/%_day%/%_year% (mm-dd-yyyy)
echo. ENG Date: %_day%/%_month%/%_year% (dd-mm-yyyy)
echo.
REM Get individual variables for time from %currdatetime%
set _24hour=%currdatetime:~8,2%
set _min=%currdatetime:~10,2%
set _sec=%currdatetime:~12,2%
REM Display examples
echo.
echo. 24 hour time: %_24hour%:%_min%
echo. Hour: %_24hour%, Min: %_min% and Sec: %_sec%
echo.
REM Convert to 12 hour format
for /F "tokens=1,2,3 delims=:,. " %%A in ('echo %_24time%') do ( set /a "_12hour=100%%A%%100")
REM Add AM/PM
if %_12hour% geq 12 (
set _ampm=PM
set /a "_12hour-=12"
) else set "_ampm=AM"
if %_12hour% equ 0 set "_12hour=12"
if %_12hour% lss 10 set "_12hour=0%_12hour%"
REM Display examples
echo.
echo. 12 hour time: %_12hour%:%_min%%_ampm%
echo. Hour: %_12hour%, Min: %_min% and Sec: %_sec%
echo.
REM Greet user differently depending on the time
if "%_24hour%" geq "20" echo. It's %_12hour%:%_min%%_ampm%^! Bit late to be working isn't it %username%? &goto :done
if "%_24hour%" geq "18" echo. Good Evening %username%, the time is %_12hour%:%_min%%_ampm%. &goto :done
if "%_24hour%" geq "12" echo. Good Afternoon %username%, the time is %_12hour%:%_min%%_ampm%. &goto :done
if "%_24hour%" geq "06" echo. Good Morning %username%, the time is %_12hour%:%_min%%_ampm%. &goto :done
echo. It's %_12hour%:%_min%%_ampm%^! Bit late to be working isn't it %username%?
:done
endlocal
echo. Press any key to exit &>nul timeout /t -1 &exit /B