I replaced @FDATE and added @FTIME, letting Windows do the work in both cases. I'll try to post new plugins soon. Here's a goofy example.
p:\4utils\release> echo ^r^nToday is day %@fdate[d] of %@fdate[MMMM] in the year %@fdate[yyyy] (%@fdate[yyyy/MM/dd]).
Today is day 25 of May in the year 2015 (2015/05/25).
p:\4utils\release> echo ^r^nRight now it's %@ftime[m] minutes and %@ftime[s] seconds after %@ftime[h] o'clock in the %@if[%@ftime[t] == P,afternoon,morning] (%@ftime[HH:mm:ss]).
Right now it's 29 minutes and 48 seconds after 3 o'clock in the afternoon (15:29:48).
Hmmm! I'm using two distinct APIs, GetDateFormatEx and GetTimeFormatEx. Neither recognizes the format elements of the other and leaves unrecognized stuff literal. So I ought to be able to use the output of one as input to the other. It works manually.
v:\> echo %@ftime[%@fdate[yyyy MMM mm dddd h mm ss tt]]
2015 May 27 Monday 5 27 13 PM
That example wouldn't work in the other order because the "M" in "PM" would be turned into a month.
v:\> echo %@fdate[%@ftime[yyyy MMM mm dddd h mm ss tt]]
2015 May 33 Monday 5 33 21 P5
v:\> help @fdate
Format the current local date
elements: y, yy, yyy, yyyy, M, MM, MMM, MMMM, d, dd, ddd, dddd
v:\> help @ftime
Format the current local time
elements: h, hh, H, HH, m, mm, s, ss, t, tt