Another scenario where :utc_now could be used is DateTime.after?(date,
:utc_now)


*José Valimhttps://dashbit.co/ <https://dashbit.co/>*


On Wed, Jan 8, 2025 at 1:57 PM Jon Rowe <m...@jonrowe.co.uk> wrote:

> I'd love either of these proposals to be a reality, I often find myself
> building my own helpers in tests to do this sort of thing.
>
> Initially I thought the function varient was better but if you look at it
> as "then we might have to add all these other functions" I found myself
> leaning towards allowing `:utc_now` as a placeholder in the existing api,
> it might be slightly more verbose but it leans towards a more compact core
> api overall... so that gets my +1.
>
> Cheers
> Jon
>
> On Wed, 8 Jan 2025, at 11:06 AM, José Valim wrote:
>
> I'd love to see something along those lines but I can't pick a favorite.
>
> 1. Supporting :utc_now in "shift" could be a welcome addition, as we could
> also support it in "add" and "diff" functions. However, I'd say it is more
> verbose than from_utc_today.
>
> 2. from_utc_now/from_utc_today is clearer but less applicable. If we go
> this route, we may find ourselves adding other functions, such as
> `add_to_utc_now` and `diff_to_utc_now`.
>
> So I would love to hear everyone's thoughts.
>
> "Date.range/2" with a duration is a no-brainer though and we could add it
> today.
>
> *José Valim*
> https://dashbit.co/
>
>
> On Tue, Jan 7, 2025 at 5:43 PM Wojtek Mach <woj...@wojtekmach.pl> wrote:
>
> Hello,
>
> I'd like to propose adding the following functions:
>
> - `Date.from_utc_today(duration)`
> - `NaiveDateTime.from_utc_today(duration)`
> - `DateTime.from_utc_today(duration)`
>
> For example:
>
>     # Say, now is ~U[2025-01-07 16:22:40.003901Z]
>
>     iex> Date.from_utc_now(month: 1, day: 1)
>     ~D[2025-02-08]
>
>     iex> NaiveDateTime.from_utc_now(hour: -1)
>     ~N[2025-01-07 15:22:40.003901]
>
>     iex> DateTime.from_utc_now(Duration.new!(hour: 1))
>     ~U[2025-01-07 17:22:40.003901Z]
>
> I believe they are especially useful when writing tests and they might
> give opportunity for some optimizations.
>
> Another idea is to instead allow passing `:utc_today` / `:utc_now` to the
> existing shift/2 functions:
>
>     iex> Date.shift(:utc_today, month: 1, day: 1)
>     ~D[2025-02-08]
>
>     iex> NaiveDateTime.shift(:utc_now, hour: -1)
>     ~N[2025-01-07 15:22:40.003901]
>
>     iex> DateTime.from_utc_now(:utc_now, hour: 1)
>     ~U[2025-01-07 17:22:40.003901Z]
>
> Btw and this is a related but separate conversion, I think a
> `Date.range(date, duration)` would be a nice addition. And so, I believe a
> `Date.range(:utc_today, month: 1)` would be a natural extension of this.
> I'm not sure if supporting `Date.add(:utc_today, 1)` and similar is worth
> it, perhaps just for consistency.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/elixir-lang-core/2851ea28-d20e-4e8d-b957-38a582f7fa39n%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/2851ea28-d20e-4e8d-b957-38a582f7fa39n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4L9iSWc7zD8v_%2BqNhsOhx10atYksuPO5gbGCMvvz88sPA%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4L9iSWc7zD8v_%2BqNhsOhx10atYksuPO5gbGCMvvz88sPA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/elixir-lang-core/3952efd8-06a4-4855-9277-8208b5c8068f%40app.fastmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/3952efd8-06a4-4855-9277-8208b5c8068f%40app.fastmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4L0a1an-ehwWjCYuJr5dqO9dtMm%3Du0hsv5nt6uqHYbRzg%40mail.gmail.com.

Reply via email to