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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Elm中以GMT显示当前时区偏移量相关的知识,希望对你有一定的参考价值。

我坚持从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

答案

榆树的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

以上是关于如何在Elm中以GMT显示当前时区偏移量的主要内容,如果未能解决你的问题,请参考以下文章

以毫秒为单位偏移当前系统时间到时区 GMT

使用时区偏移量而不是时区标识符将 GMT 时间转换为本地时间

MySQL 查询当前 GMT 时间

如何以正确的格式获取 UTC 偏移量(时区)?

JS:如何获取时区

使用本地时区在 Python 中获取正确的时区偏移量