nushell/crates/nu-protocol/src
WMR 0c888486c9
Add custom datetime format through strftime strings (#9500)
- improves usability of datetime's in displayed text
- 
# Description
Creates a config point for specifying long / short date time formats.
Defaults to humanized as we have today.

Provides for adding strftime formats into config.nu such as:
```nu
  datetime_format: {
    normal: "%Y-%m-%d %H:%M:%S"
    table: "%Y-%m-%d"
  }
```

Example:
```bash
> $env.config.datetime_format                                                                                                                         
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ normal ┃ %a, %d %b %Y %H:%M:%S %z ┃
┃ table  ┃ %m/%d/%y %I:%M:%S%p      ┃
┗━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━┛
> let a = (date now)                                                                                                                                  
> echo $a                                                                                                                                             
Thu, 22 Jun 2023 10:21:23 -0700
> echo [$a]                                                                                                                                           
┏━━━┳━━━━━━━━━━━━━━━━━━━━━┓
┃ 0 ┃ 06/22/23 10:21:23AM ┃
┗━━━┻━━━━━━━━━━━━━━━━━━━━━┛
```

# User-Facing Changes
Any place converting a datetime to a user displayed value should be
impacted.

# Tests + Formatting

- `cargo fmt --all -- --check` Done
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect -A clippy::result_large_err` Done
- `cargo test --workspace` Done 
- `cargo run -- crates/nu-std/tests/run.nu` Not done - doesn't seem to
work

```bash
> use toolkit.nu  # or use an `env_change` hook to activate it automatically
> toolkit check pr
``` - Done

---------

Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
Co-authored-by: Antoine Stevan <44101798+amtoine@users.noreply.github.com>
2023-06-23 15:05:04 -05:00
..
ast revert: move to ahash (#9464) 2023-06-18 15:27:57 +12:00
engine revert: move to ahash (#9464) 2023-06-18 15:27:57 +12:00
value Add custom datetime format through strftime strings (#9500) 2023-06-23 15:05:04 -05:00
alias.rs Document and critically review ShellError variants - Ep. 3 (#8340) 2023-03-06 18:33:09 +01:00
cli_error.rs remove nu_cli crate dependency from nu_std (#8807) 2023-04-08 13:53:43 +02:00
config.rs Add custom datetime format through strftime strings (#9500) 2023-06-23 15:05:04 -05:00
did_you_mean.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
example.rs remove unused imports: Deserialize, Serialize compiler warning for nu-protocol/src/example.rs (#8514) 2023-03-18 11:45:12 -07:00
exportable.rs Allow creating modules from directories (#9066) 2023-05-06 21:39:54 +03:00
id.rs Add virtual path abstraction layer (#9245) 2023-05-23 23:48:50 +03:00
lev_distance.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
lib.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
module.rs Allow creating modules from directories (#9066) 2023-05-06 21:39:54 +03:00
parse_error.rs Cut down on unnecessary parsing for SyntaxShape::Any (#9280) 2023-05-25 07:53:57 +12:00
pipeline_data.rs Revert #8395 "Treat empty pipelines as pass-through" (#9472) 2023-06-20 20:27:18 +12:00
plugin_signature.rs Plugin api docs (#9452) 2023-06-16 16:25:40 +02:00
shell_error.rs Fix missing file names from rm errors (#9120) 2023-06-18 10:00:12 +02:00
signature.rs Change type of flag defaults to Option<Value> (#9085) 2023-05-03 23:09:36 +02:00
span.rs Use variable names directly in the format strings (#7906) 2023-01-29 19:37:54 -06:00
syntax_shape.rs allow records to have type annotations (#8914) 2023-04-26 08:16:55 -05:00
ty.rs allow records to have type annotations (#8914) 2023-04-26 08:16:55 -05:00
util.rs move BufferedReader out of nu-command (#7697) 2023-01-06 15:22:17 -08:00
variable.rs Limited mutable variables (#7089) 2022-11-11 19:51:08 +13:00