flutter - 我如何将字符串类型 "Timestamp(seconds=1621176915, nanoseconds=276147000)"转换为实际时间戳类型?

标签 flutter dart

我已经从 firebase 获取了这个时间戳,我想将此字符串时间戳转换为实际的数据类型。但它给了我一个解析错误,如下所示。

Unhandled Exception: type 'String' is not a subtype of type 'Timestamp' in type cast

最佳答案

import 'package:cloud_firestore/cloud_firestore.dart'; // for using Timestamp

final String preConverted = "Timestamp(seconds=1621176915, nanoseconds=276147000)";

final int _seconds =
        int.parse(preConverted.substring(18, 28)); // 1621176915
final int _nanoseconds =
        int.parse(preConverted.substring(42, preConverted.lastIndexOf(')'))); // 276147000
final Timestamp postConverted = Timestamp(_seconds, _nanoseconds);

现在您可以使用 postConverted 获取时间戳类型变量。 我使用了 substring 和 lastIndexOf 方法,它对我有用。

由于纳秒可以是 8 位数字,而不是像本例中的 9 位数字,因此我们需要使用 lastIndexOf 方法来获取表示纳秒结束的 ')' 索引。

关于flutter - 我如何将字符串类型 "Timestamp(seconds=1621176915, nanoseconds=276147000)"转换为实际时间戳类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69002745/

相关文章:

dart - 将 listView 传递到另一个屏幕

flutter - 打开键盘时如何推送所有内容

firebase - Flutter Cloud Firebase设置自定义ID(上传)

multithreading - Flutter Dart : How can we achieve multithreading like python or java in dart

flutter - 如何从异步/等待函数返回 bool 值并将其传递给其他页面中的其他变量

flutter - 如何使用 Provider 在我的 Flutter View 中获取 Provider 值?

firebase - 在没有用户交互的情况下在构建期间调用 setState()

datetime - flutter Dart 错误将时间戳转换为没有时间的日期

dart - 缓存并将缓存的数据提供给StreamBuilder Flutter

flutter - Flutter Navigator.pop再次运行小部件构建方法