diff --git a/pkgs/racket-pkgs/racket-doc/scribblings/foreign/com-auto.scrbl b/pkgs/racket-pkgs/racket-doc/scribblings/foreign/com-auto.scrbl index 6d38f165e0..06685ea420 100644 --- a/pkgs/racket-pkgs/racket-doc/scribblings/foreign/com-auto.scrbl +++ b/pkgs/racket-pkgs/racket-doc/scribblings/foreign/com-auto.scrbl @@ -449,7 +449,9 @@ used to represent various atomic types: @item{@racket['string] --- a string} - @item{@racket['date] --- a @racket[date] or @racket[date*]} + @item{@racket['date] --- a @racket[date] or @racket[date*]; when converting to + a @racket[date*], the timezone is reported as @racket["UTC"] and the + @racket[year-day] field is @racket[0]} @item{@racket['com-object] --- a @tech{COM object} as in @racket[com-object?]} diff --git a/racket/collects/ffi/unsafe/com.rkt b/racket/collects/ffi/unsafe/com.rkt index 7c349181a7..c728be74f4 100644 --- a/racket/collects/ffi/unsafe/com.rkt +++ b/racket/collects/ffi/unsafe/com.rkt @@ -1447,16 +1447,18 @@ (define s (make-SYSTEMTIME 0 0 0 0 0 0 0 0)) (unless (not (zero? (VariantTimeToSystemTime d s))) (error 'date "error converting date from COM date")) - (date (SYSTEMTIME-wSecond s) - (SYSTEMTIME-wMinute s) - (SYSTEMTIME-wHour s) - (SYSTEMTIME-wDay s) - (SYSTEMTIME-wMonth s) - (SYSTEMTIME-wYear s) - (SYSTEMTIME-wDayOfWeek s) - 0 - #f - 0)))) + (date* (SYSTEMTIME-wSecond s) + (SYSTEMTIME-wMinute s) + (SYSTEMTIME-wHour s) + (SYSTEMTIME-wDay s) + (SYSTEMTIME-wMonth s) + (SYSTEMTIME-wYear s) + (SYSTEMTIME-wDayOfWeek s) + 0 + #f + 0 + (* 1000 (SYSTEMTIME-wMilliseconds s)) + "UTC")))) (define _currency (make-ctype _CY