如何在Elm中以GMT显示当前时区偏移量

问题描述 投票:4回答:1

我坚持从Elm中的Date获取当前时区偏移量。

Date.now

这将<Thu Feb 22 2018 20:42:42 GMT+0530 (India Standard Time)>作为字符串返回正如我在Elm的日期和时间核心库中探索过的那样,它们没有提供任何直接的方法来获取当前时区偏移量。所以我该怎么做?

import Html as App
import Html exposing (..)
import Date exposing (Date)
import Task


type alias Model = 
  Maybe Date


type Msg = 
  SetDate (Maybe Date)


update : Msg -> Model -> (Model, Cmd Msg)
update (SetDate date) _ = 
  (date, Cmd.none)


view : Model -> Html Msg
view model =
  div [] [ text <| dateString model ]


dateString : Model -> String
dateString model =
  case model of
    Nothing -> "No date here"
    Just date ->
      (toString <| date)

now : Cmd Msg
now = 
  Task.perform (Just >> SetDate) Date.now




main : Program Never Model Msg
main =
  App.program 
    { init = ( Nothing, now ) 
    , view = view
    , subscriptions = always Sub.none 
    , update = update
    }

我需要这个+0530,就像在浮动5.5

date time offset elm
1个回答
6
投票

榆树的DateTime函数目前非常稀疏,但只是为了解决这类问题,请尽量减少Date.Extra库。看看here

你可以这样导入它,

import Date.Extra exposing (offsetFromUtc)

然后,在那里你有toString <| date改变你的管道

date
    |> offsetFromUtc
    |> toString

如果你想要浮点值,那么你会在几分钟内得到你的偏移量,只需将int除以60.这里的简单函数是这样做的:

divBy60 : Int -> Float
divBy60 t =
    toFloat t / 60.0

然后再次将管道更改为

date
    |> offsetFromUtc
    |> divBy60
    |> toString
© www.soinside.com 2019 - 2024. All rights reserved.