Refactor timestamp formatting in Git UI components to use chrono for local time calculations (#41005)

- Updated `blame_ui.rs`, `branch_picker.rs`, `commit_tooltip.rs`, and
`commit_view.rs` to replace the previous timestamp formatting with
`chrono` for better accuracy in local time representation.
- Introduced `chrono::Local::now().offset().local_minus_utc()` to obtain
the local offset for timestamp formatting.

Closes #40878

Release Notes:
- Improved timestamp handling in various Git UI components for enhanced
user experience.
This commit is contained in:
Viraj Bhartiya
2025-11-05 23:23:22 -05:00
committed by GitHub
parent 69862790cb
commit 5360dc1504
8 changed files with 20 additions and 17 deletions
+5 -4
View File
@@ -14,7 +14,6 @@ use settings::Settings;
use std::hash::Hash;
use theme::ThemeSettings;
use time::{OffsetDateTime, UtcOffset};
use time_format::format_local_timestamp;
use ui::{Avatar, Divider, IconButtonShape, prelude::*, tooltip_container};
use workspace::Workspace;
@@ -190,9 +189,11 @@ impl Render for CommitTooltip {
.map(|sha| sha.to_string().into())
.unwrap_or_else(|| self.commit.sha.clone());
let full_sha = self.commit.sha.to_string();
let absolute_timestamp = format_local_timestamp(
let local_offset = UtcOffset::current_local_offset().unwrap_or(UtcOffset::UTC);
let absolute_timestamp = time_format::format_localized_timestamp(
self.commit.commit_time,
OffsetDateTime::now_utc(),
local_offset,
time_format::TimestampFormat::MediumAbsolute,
);
let markdown_style = {
@@ -351,11 +352,11 @@ impl Render for CommitTooltip {
fn blame_entry_timestamp(blame_entry: &BlameEntry, format: time_format::TimestampFormat) -> String {
match blame_entry.author_offset_date_time() {
Ok(timestamp) => {
let local = chrono::Local::now().offset().local_minus_utc();
let local_offset = UtcOffset::current_local_offset().unwrap_or(UtcOffset::UTC);
time_format::format_localized_timestamp(
timestamp,
time::OffsetDateTime::now_utc(),
UtcOffset::from_whole_seconds(local).unwrap(),
local_offset,
format,
)
}