You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何显示带国家时区缩写的时间(如7:55 PM PKT)

在Flutter中实现时间戳转带时区缩写的时间格式

实现步骤:

  1. 添加依赖
    在pubspec.yaml中引入intl包用于时间格式化:
dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 可根据最新版本调整

执行flutter pub get完成依赖安装。

  1. 核心代码实现
import 'package:intl/intl.dart';

String formatTimestampWithTimeZone(int timestamp) {
  // 转换时间戳为DateTime对象(默认按毫秒级处理,秒级则改用fromSecondsSinceEpoch)
  DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp);
  
  // 获取当前设备的本地时区缩写
  String timeZoneAbbr = DateTime.now().timeZoneName;
  
  // 格式化时间为12小时制的 h:mm a 格式
  String formattedTime = DateFormat('h:mm a').format(dateTime);
  
  // 拼接时间与时区缩写
  return '$formattedTime $timeZoneAbbr';
}

关键说明:

  • 时间戳适配:如果后端返回的是秒级时间戳,将fromMillisecondsSinceEpoch替换为fromSecondsSinceEpoch即可。
  • 时区缩写:DateTime.now().timeZoneName会返回当前设备的时区缩写(如PKT、EST、CST等),多数平台返回结果一致;若遇到少数返回全称的特殊时区,可手动维护时区映射表做转换。
  • 格式调整:若需要24小时制,将DateFormat('h:mm a')改为DateFormat('HH:mm')即可。

使用示例:

// 示例毫秒级时间戳,对应7:55 PM PKT
int sampleTimestamp = 1699997700000;
String displayTime = formatTimestampWithTimeZone(sampleTimestamp);
print(displayTime); // 输出:7:55 PM PKT

内容的提问来源于stack exchange,提问作者Mussadaq Ahmad Jamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:52:08