diff --git a/openpgp-card/src/card_do.rs b/openpgp-card/src/card_do.rs index 19b5ae5..28b5546 100644 --- a/openpgp-card/src/card_do.rs +++ b/openpgp-card/src/card_do.rs @@ -252,11 +252,15 @@ impl KeyGenerationTime { self.0 } - pub fn formatted(&self) -> String { + pub fn to_datetime(&self) -> DateTime { let d = UNIX_EPOCH + Duration::from_secs(self.get() as u64); - let datetime = DateTime::::from(d); + DateTime::::from(d) + } +} - datetime.format("%Y-%m-%d %H:%M:%S").to_string() +impl Display for KeyGenerationTime { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.to_datetime()) } } diff --git a/tools/src/bin/opgpcard/main.rs b/tools/src/bin/opgpcard/main.rs index 937ca09..59a6f55 100644 --- a/tools/src/bin/opgpcard/main.rs +++ b/tools/src/bin/opgpcard/main.rs @@ -465,7 +465,7 @@ fn print_status(ident: Option, verbose: bool) -> Result<()> { println!(" fingerprint: {}", fp.to_spaced_hex()); } if let Some(kgt) = kgt.signature() { - println! {" created: {}", kgt.formatted()}; + println! {" created: {}", kgt.to_datetime()}; } println! {" algorithm: {}", open.algorithm_attributes(KeyType::Signing)?}; if verbose { @@ -480,7 +480,7 @@ fn print_status(ident: Option, verbose: bool) -> Result<()> { println!(" fingerprint: {}", fp.to_spaced_hex()); } if let Some(kgt) = kgt.decryption() { - println! {" created: {}", kgt.formatted()}; + println! {" created: {}", kgt.to_datetime()}; } println! {" algorithm: {}", open.algorithm_attributes(KeyType::Decryption)?}; if verbose { @@ -495,7 +495,7 @@ fn print_status(ident: Option, verbose: bool) -> Result<()> { println!(" fingerprint: {}", fp.to_spaced_hex()); } if let Some(kgt) = kgt.authentication() { - println! {" created: {}", kgt.formatted()}; + println! {" created: {}", kgt.to_datetime()}; } println! {" algorithm: {}", open.algorithm_attributes(KeyType::Authentication)?}; if verbose {