Harrygr

Harrygr

Formatting date and time in an email in the correct timezone

I’m want to send emails from my elixir/phoenix application that contains information about events stored in the database. Included in this information is the date and time of the event. The event times are stored in the DB as UTC timestamps. I also have lat/long coordinates of the event location in the DB.

Ideally in the email the event time would be formatted to be displayed in the timezone of the location where the event is being held.

e.g. if an event being held in Paris, France is at 2019-11-20T13:00:00Z this might be displayed in the email as “20 Nov 2019, 14:00 CET”.

Alternatively the time would be displayed in the recipient’s timezone. This is tricky though as I have no control over any client side date parsing etc in an email.

I’m aware of 3rd party APIs that can give a timezone from a lat/long but I’d like to avoid adding such a dependency.

I am also considering attaching an invite.ics to the email so that compatible email clients can parse it and display it in the recipient’s timezone.

Are there any good suggestions for solving this problem? I imagine it must be quite a common challenge.

Marked As Solved

kip

kip

ex_cldr Core Team

There is an Elixir library tz_world that uses the underlying data from evansiroky/timezone-boundary-builder. The current hex version relies on Ecto and PostGIS but:

Using my fork:

iex> TzWorld.timezone_at 3.25, 45.1                            
{:ok, "Europe/Paris"}

Also Liked

danschultzer

danschultzer

Pow Core Team

There’s also geotz based on the excellent dark sky tz-lookup library. Was built and used for a platform in production a while back, where we had to fetch many timezones dynamically.

Edit: It hasn’t been released on hex, we just used the github source.

Where Next?

Popular in Questions Top

dotdotdotPaul
Okay, I’m having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I’m sure I’...
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

Other popular topics Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement