Flutter 在Dart颤振中将Unix/epoch时间戳转换为人类可读的时间

Flutter 在Dart颤振中将Unix/epoch时间戳转换为人类可读的时间,flutter,dart,Flutter,Dart,假设我从API收到的历元时间戳是1595216214。 这相当于2020年7月20日星期一格林尼治标准时间凌晨3:36:54 我的兴趣是只忽略日期/天值的时间值?如何在Dart中编写代码? 此外,如何将其转换为我的时区,例如:GMT+8开始时: 安装intl程序包: 第二: 要将UNIX/Epoch时间解析为FLATTER DateTime,请从intl执行以下操作: DateFormat'HH:mm'.formatDateTime.tryParseyourDateTimeAsUNIXForma

假设我从API收到的历元时间戳是1595216214。 这相当于2020年7月20日星期一格林尼治标准时间凌晨3:36:54

我的兴趣是只忽略日期/天值的时间值?如何在Dart中编写代码? 此外,如何将其转换为我的时区,例如:GMT+8开始时:

安装intl程序包:

第二:

要将UNIX/Epoch时间解析为FLATTER DateTime,请从intl执行以下操作:

DateFormat'HH:mm'.formatDateTime.tryParseyourDateTimeAsUNIXFormattedString

要重新解析它,只需使用:YourDateTime.millissecondssinceepoch


要将该日期转换为您的时区,请使用以下命令:

您可以使用DateTime类来完成此操作。像这样:

var dateUtc = DateTime.fromMillisecondsSinceEpoch(myAPIEpochTimeInMilliseconds, isUtc: true);
var dateInMyTimezone = dateUtc.add(Duration(hours: 8));
var secondsOfDay = dateInMyTimezone.hour * 3600 + dateInMyTimezone.minute * 60 + dateInMyTimezone.second;
注:

如果您是在web上这样做的,尽管Dart支持64位以上的数字,但javascript只接受32位整数。因此,对于超过32位表示的大数字,请使用BigInt类

DateTime没有要在类上定义的固有时区。是本地机器时间或utc时间。因此,建议始终使用utc,并在需要时添加时区偏移。或者只是创建一个包装器


这回答了你的问题吗?基本上一个单一的搜索给你这是一个重复,请标记哦,是的,很抱歉看到链接后它没有。如果你真的读过,它不会回答这个问题。另外,我明确地添加了新信息,并补充了更完整的回答。标记。