I think MSVCRT.DLL continues not recognizing the format specifiers %G and %V. However, the C runtimes after VS 2015 do recognize.
This is for Windows 10.
.model flat, stdcall
size_t typedef ptr
includelib \masm32\lib\msvcrt.lib
time proto C :ptr
strftime proto C :ptr, :size_t, :ptr, :vararg
localtime proto C :ptr
asctime proto C :ptr
puts proto C :ptr
.data
todayIs db "Today is %A, %B %d",0
timeIs db "The time is %I:%M %p.",0
isoMSG db "ISO week day is %GW%V%u.",0
buffer db 256 dup (0)
.code
main proc
LOCAL curtime : qword
LOCAL loctime : ptr
invoke time, 0
mov dword ptr curtime, eax
mov dword ptr curtime+4, edx
invoke localtime, addr curtime
mov loctime, eax
invoke asctime, eax
invoke puts, eax
invoke strftime, addr buffer, 256, offset todayIs, loctime
invoke puts, addr buffer
invoke strftime, addr buffer, 256, offset timeIs, loctime
invoke puts, addr buffer
invoke strftime, addr buffer, 256, offset isoMSG, loctime
invoke puts, addr buffer
ret
main endp
end
Output:
Fri Aug 23 15:34:45 2019
Today is Friday, August 23
The time is 03:34 PM.
(No sign of the ISO message.)