mirror of
https://github.com/nushell/nushell.git
synced 2025-04-24 21:28:20 +02:00
Hi, This PR should close 3 issues - [DMY date format is parsed inconsistently #14123](https://github.com/nushell/nushell/issues/14123) - [into datetime doesnt't work with --format and ignores user's locale #11015](https://github.com/nushell/nushell/issues/11015) - [into datetime: iinconsistent and incrrect behaviour regarding timezones #13823](https://github.com/nushell/nushell/issues/13823) # Description - Allow to parse only dates or only times with --format - Use local timezone depending on the input. Ex: I'm in France, so show dates with +0100 in winter and +0200 in summer. ```nushell # Concerning #13823 > "2020-01-01 12:00" | into datetime Wed, 1 Jan 2020 12:00:00 +0100 (5 years ago) # OK, it's my timezone in winter time > "2020-06-01 12:00" | into datetime Mon, 1 Jun 2020 12:00:00 +0200 (4 years ago) # OK, it's my timezone in summertime > ("2024-10-27 12:00" | into datetime) - ("2024-10-27 00:00" | into datetime) 13hr # Ok, because we switched from summer to winter time on 2025-10-27, so there are actually 13h between midnight and noon > "2020-01-01 12:00" | into datetime --format "%Y-%m-%d %H:%M" Wed, 1 Jan 2020 12:00:00 +0100 (5 years ago) # OK: timezone is assumed to be local, and +0100 is my timezone in winter # Concerning #14123 and #11015 # Flexible parsing still works like before, which could be counter-intuitive, but it's flexible parsing # with one difference: the timezone is local > '12-01-2001' | into datetime Sat, 1 Dec 2001 00:00:00 +0100 (23 years ago) # OK, +0100 is my timezone in winter time. If I run it with nushell 0.103.0 in summer time, I get +0200 > '13-01-2001' | into datetime Sat, 13 Jan 2001 00:00:00 +0100 (24 years ago) ## If you want, you can use the --format option to parse a date or a time (before, it had to be a date + time) ## Notice here again the timezone is correct depending on winter/summer time ~> "06.03.2023" | into datetime -f "%d.%m.%Y" Mon, 6 Mar 2023 00:00:00 +0100 (2 years ago) ~> "06.03.2023" | into datetime -f "%m.%d.%Y" Sat, 3 Jun 2023 00:00:00 +0200 (2 years ago) > "10:00" | into datetime --format "%H:%M" Thu, 10 Apr 2025 10:00:00 +0200 (9 hours ago) ``` # User-Facing Changes See above # Tests + Formatting # After Submitting I'll down something for the release notes, if this is merged in time 😄 |
||
---|---|---|
.. | ||
bytes | ||
charting | ||
conversions | ||
database | ||
date | ||
debug | ||
env | ||
experimental | ||
filesystem | ||
filters | ||
formats | ||
generators | ||
hash | ||
help | ||
math | ||
misc | ||
network | ||
path | ||
platform | ||
random | ||
removed | ||
shells | ||
stor | ||
strings | ||
system | ||
viewers | ||
default_context.rs | ||
example_test.rs | ||
lib.rs | ||
progress_bar.rs | ||
sort_utils.rs |