fix(kline): convert time to local timezone for display

- Added toLocal() conversion in _formatTimeLabel (painter)
- Added toLocal() conversion in _formatDateTime (widget)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-19 21:55:56 -08:00
parent 900ba4a555
commit 99c1ff1fb7
2 changed files with 9 additions and 5 deletions

View File

@ -673,7 +673,9 @@ class _KlineChartWidgetState extends State<KlineChartWidget> {
}
String _formatDateTime(DateTime time) {
return '${time.month}/${time.day} ${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}';
//
final localTime = time.toLocal();
return '${localTime.month}/${localTime.day} ${localTime.hour.toString().padLeft(2, '0')}:${localTime.minute.toString().padLeft(2, '0')}';
}
double _calcPriceY(double price, double chartHeight) {

View File

@ -343,13 +343,15 @@ class KlinePainter extends CustomPainter {
}
String _formatTimeLabel(DateTime time) {
//
final localTime = time.toLocal();
//
//
final hour = time.hour.toString().padLeft(2, '0');
final minute = time.minute.toString().padLeft(2, '0');
if (time.hour == 0 && time.minute == 0) {
final hour = localTime.hour.toString().padLeft(2, '0');
final minute = localTime.minute.toString().padLeft(2, '0');
if (localTime.hour == 0 && localTime.minute == 0) {
// /
return '${time.month}/${time.day}';
return '${localTime.month}/${localTime.day}';
}
return '$hour:$minute';
}