如何通过配置文件使用tzdata?Elixir时区配置报错求助
解决Elixir时区配置不生效导致的
:utc_only_time_zone_database错误 错误原因:直接启动iex时,系统不会自动加载项目config/config.exs中的配置,因此Elixir仍使用默认的UTCOnlyTimeZoneDatabase,该数据库仅支持UTC时区,无法处理Europe/Paris这类非UTC时区转换。
解决方案步骤:
确认安装tzdata依赖
检查项目根目录下的mix.exs文件,确保已添加tzdata依赖:defp deps do [ {:tzdata, "~> 1.1"} ] end若未添加,执行以下命令安装依赖:
mix deps.get加载配置启动iex
在~/learning_elixir目录下,使用以下命令启动iex,确保mix加载项目配置:iex -S mix验证配置与执行代码
启动iex后,先确认时区数据库配置已生效:Application.get_env(:elixir, :time_zone_database) # 预期返回:Tzdata.TimeZoneDatabase之后执行教程中的代码即可正常运行:
paris_datetime = DateTime.from_naive!(~N[2019-01-01 12:00:00], "Europe/Paris") {:ok, ny_datetime} = DateTime.shift_zone(paris_datetime, "America/New_York") ny_datetime
内容的提问来源于stack exchange,提问作者user1354934
相关产品推荐
相关产品推荐

