f0rest8
I know I’m missing something here, but I’ve bounced around from Calendar and Timex trying to get a :strftime format with the offset computed in the formatted hours to no avail.
Is there a way to format a DateTime string using :strftime but computing the offset in the hours representation?
Currently, I convert a NaiveDateTime with Timex so that I can see what Calendar’s calculating as the offset (which shows that everything is correct time-wise — just not my formatting ability).
dt = Timex.to_datetime(naive_date_string, "America/New_York")
datetime = Calendar.strftime(dt, "%A %b. %d, %Y @ %I:%M %z")
"Friday Aug. 20, 2021 @ 06:14 -0400"
It seems like whenever I come back to formatting using :strftime I arrive back in the future because the offset is not able to be computed in the formatted hours.
When I use the %z to see what the offset is, it’s correct and leaves me wishing I could just use something like %I only with the offset computed from the inputted datetime.
![]()
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
vfsoraki
%zalready gives you the offset in hours and minutes.I’m not sure I understood your problem, care to clarify more? What do you mean by “hours representation”?
vfsoraki
Also, if you just need the offset, you can use
DateTimestruct directly, using fieldsutc_offsetandstd_offsetwhich are in seconds, but you can convert them to hours if you wish.f0rest8
7:00instead of10:00if the offset were say-0300.From what I can tell is that when using
:strftimeyou always get the hours and offset separately. For example, you’d get10:00 -0300(and you can get those separately of course), but you can’t get7:00with the offset having been applied to the hours for you.Is that correct?
vfsoraki
So you’re basically trying to convert your datetimes to UTC?
I think
shift_zone/3might be useful to you, or if you use Timex I thinkconvert/2might be useful.I think you want to convert your datetimes to “Etc/UTC” or similar.
f0rest8
Thank you
I think I’ve been going in circles on this one.
vfsoraki
You’re welcome.
BTW, I think I pasted the second link wrong, here it is: Timex.Timezone — timex v3.7.13
acrolink
For anyone looking for the straightforward answer to this very basic need (not documented anywhere), can be done like this: