Skip to content

ToUniversalTime() is not working in online TryFSharp #51

@abelbraaksma

Description

@abelbraaksma

Not sure whether or not this is a true bug or not, i.e. maybe it's caused by how date and time are dealt with in browsers, but it does lead to differences in how code works in local FSI vs online FSI.

Example code

open System

let x = DateTime.Now
let y = x.ToUniversalTime()
x.Equals y |> printfn "%A"   // should be false
x = y |> printfn "%A"        // should be false
printfn "%A" x               // should be X hours before/after UTC
printfn "%A" y               // should be UTC

Expected output

If you run this, it should output the following (which is what you'll see when running it locally in FSI, except that in UK the times may actually be equal, anywhere else they should be different):

false
false
2/18/2022 6:37:54 PM
2/18/2022 5:37:54 PM

Actual output on https://try.fsharp.org/

However, it outputs this, note specifically the differences in how the %A outputs the time (which may be due to system wide settings on the machine, so not that big a deal), and, most importantly, that ToUniversalTime() did not change the time to UTC, instead the time variable remained unchanged.

true
true
Fri Feb 18 2022 17:09:41 GMT+0100 (Central European Standard Time)
Fri Feb 18 2022 17:09:41 GMT+0100 (Central European Standard Time)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions