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

Dart如何将数据库中存储的时间戳1631363150转换为dd-mm-yyyy格式

Dart 秒级时间戳转dd-mm-yyyy格式日期实现方案

你存储的1631363150属于秒级Unix时间戳,Dart内置的DateTime类默认接收毫秒/微秒级时间戳,所以转换时需要先做单位转换,日期格式化可以用官方维护的intl包完成,具体步骤如下:


步骤1:添加依赖

在项目的pubspec.yaml文件中添加intl依赖:

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 可替换为当前最新稳定版本

添加后执行flutter pub get(纯Dart项目执行dart pub get)安装依赖。


步骤2:核心转换代码

import 'package:intl/intl.dart';

String timestampToDate(String timestampStr) {
  // 1. 将字符串时间戳转为int类型,转成毫秒级时间戳
  int timestamp = int.parse(timestampStr) * 1000;
  // 2. 生成DateTime对象,如需用UTC时间可改用DateTime.fromMillisecondsSinceEpoch(timestamp, isUtc: true)
  DateTime date = DateTime.fromMillisecondsSinceEpoch(timestamp);
  // 3. 按dd-mm-yyyy格式格式化,注意月份用大写MM,小写mm对应分钟
  return DateFormat('dd-MM-yyyy').format(date);
}

// 测试示例
void main() {
  String storedTimestamp = '1631363150';
  String formattedDate = timestampToDate(storedTimestamp);
  print(formattedDate); // 输出对应当地时间:11-09-2021
}

注意事项

  • 如果你数据库存储的是毫秒级时间戳,转换时不需要乘以1000,直接传入fromMillisecondsSinceEpoch即可
  • 格式字符串中MM代表两位月份,mm代表两位分钟,不要写错避免格式化错误
  • 如需输出其他格式,可修改DateFormat的参数,比如yyyy年MM月dd日就能输出2021年09月11日格式的日期

内容的提问来源于stack exchange,提问作者krimo04

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:57:04