flutter如何转换时间戳
在Flutter中如何将时间戳转换为可读的日期时间格式?例如,我有一个时间戳1651234567,想把它转换成"2022-04-29 12:16:07"这样的格式。使用Dart的DateTime类时具体应该怎么操作?是否需要注意时区问题?求代码示例。
2 回复
使用 DateTime.fromMillisecondsSinceEpoch(timestamp) 将时间戳转换为 DateTime 对象。例如:DateTime date = DateTime.fromMillisecondsSinceEpoch(1640995200000);
更多关于flutter如何转换时间戳的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中转换时间戳可以使用 DateTime 类。以下是几种常见方法:
1. 时间戳转DateTime
// 毫秒时间戳转DateTime
int timestamp = 1633046400000;
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp);
// 秒时间戳转DateTime
int secondsTimestamp = 1633046400;
DateTime dateTime2 = DateTime.fromMillisecondsSinceEpoch(secondsTimestamp * 1000);
2. DateTime转时间戳
DateTime now = DateTime.now();
// 转毫秒时间戳
int milliseconds = now.millisecondsSinceEpoch;
// 转秒时间戳
int seconds = now.millisecondsSinceEpoch ~/ 1000;
3. 格式化时间显示
使用 intl 包进行格式化:
# pubspec.yaml 添加依赖
dependencies:
intl: ^0.18.1
import 'package:intl/intl.dart';
String formatTime(int timestamp) {
var format = DateFormat('yyyy-MM-dd HH:mm:ss');
return format.format(DateTime.fromMillisecondsSinceEpoch(timestamp));
}
// 使用示例
print(formatTime(1633046400000)); // 输出:2021-10-01 00:00:00
4. 其他常用格式化
DateFormat('yyyy/MM/dd').format(dateTime); // 2021/10/01
DateFormat('HH:mm').format(dateTime); // 08:30
DateFormat('EEE, MMM d').format(dateTime); // Fri, Oct 1
注意事项:
- 注意时间戳单位(毫秒/秒)
- 考虑时区问题,DateTime默认使用本地时区
- 使用
toUtc()可转换为UTC时间
这些方法能满足大部分时间戳转换需求。

