pr: use chrono instead of time

This commit is contained in:
x-dune 2023-06-04 20:17:52 +08:00
parent 99fa504257
commit 7958c5d061
3 changed files with 8 additions and 16 deletions

2
Cargo.lock generated
View file

@ -2956,11 +2956,11 @@ dependencies = [
name = "uu_pr"
version = "0.0.18"
dependencies = [
"chrono",
"clap",
"itertools",
"quick-error",
"regex",
"time",
"uucore",
]

View file

@ -16,11 +16,11 @@ path = "src/pr.rs"
[dependencies]
clap = { workspace=true }
time = { workspace=true, features = ["local-offset", "macros", "formatting"] }
uucore = { workspace=true, features=["entries"] }
quick-error = { workspace=true }
itertools = { workspace=true }
regex = { workspace=true }
chrono = { workspace=true }
[[bin]]
name = "pr"

View file

@ -6,6 +6,7 @@
// spell-checker:ignore (ToDO) adFfmprt, kmerge
use chrono::{DateTime, Local};
use clap::{crate_version, Arg, ArgAction, ArgMatches, Command};
use itertools::Itertools;
use quick_error::ResultExt;
@ -15,8 +16,6 @@ use std::fs::{metadata, File};
use std::io::{stdin, stdout, BufRead, BufReader, Lines, Read, Write};
#[cfg(unix)]
use std::os::unix::fs::FileTypeExt;
use time::macros::format_description;
use time::OffsetDateTime;
use quick_error::quick_error;
use uucore::display::Quotable;
@ -37,8 +36,7 @@ const DEFAULT_COLUMN_WIDTH: usize = 72;
const DEFAULT_COLUMN_WIDTH_WITH_S_OPTION: usize = 512;
const DEFAULT_COLUMN_SEPARATOR: &char = &TAB;
const FF: u8 = 0x0C_u8;
const DATE_TIME_FORMAT: &[time::format_description::FormatItem] =
format_description!("[month repr:short] [day] [hour]:[minute] [year]");
const DATE_TIME_FORMAT: &str = "%b %d %H:%M %Y";
mod options {
pub const HEADER: &str = "header";
@ -571,10 +569,8 @@ fn build_options(
let line_separator = "\n".to_string();
let last_modified_time = if is_merge_mode || paths[0].eq(FILE_STDIN) {
// let date_time = Local::now();
// date_time.format("%b %d %H:%M %Y").to_string()
let date_time = OffsetDateTime::now_local().unwrap();
date_time.format(&DATE_TIME_FORMAT).unwrap()
let date_time = Local::now();
date_time.format(DATE_TIME_FORMAT).to_string()
} else {
file_last_modified_time(paths.first().unwrap())
};
@ -1215,12 +1211,8 @@ fn file_last_modified_time(path: &str) -> String {
.map(|i| {
i.modified()
.map(|x| {
let date_time: OffsetDateTime = x.into();
let offset = OffsetDateTime::now_local().unwrap().offset();
date_time
.to_offset(offset)
.format(&DATE_TIME_FORMAT)
.unwrap()
let date_time: DateTime<Local> = x.into();
date_time.format(DATE_TIME_FORMAT).to_string()
})
.unwrap_or_default()
})