如何将 Flutter 日期转换为时间戳?

Pea*_*Gen 4 datetime android ios dart flutter

我需要向post包含Date值的 REST API发送请求。但是 REST API 和 MySQL 接受Timestamp. 以下是我如何准备我的当前日期

User user = User(
      name: nameTxtController.text,
      email: emailTxtController.text,
      phone: mobileTxtController.text,
      userLanguage: userLanguage,
      userRights: userRight,
      lastUpdated: DateTime.now(),
      dateCreated: DateTime.now()

    );
Run Code Online (Sandbox Code Playgroud)

如何将其转换为Timestamp

小智 16

1) 在 pubspec.yaml 上

使用最新版本导入 cloud_firestore 插件

https://pub.dartlang.org/packages/cloud_firestore

dependencies:
 flutter:
  sdk: flutter

 # The following adds the Cupertino Icons font to your application.
 # Use with the CupertinoIcons class for iOS style icons.
 cupertino_icons: ^0.1.2`enter code here`

 cloud_firestore: ^0.9.13 //import this, with last version
Run Code Online (Sandbox Code Playgroud)

2) 在你的 file.dart 上

import 'package:cloud_firestore/cloud_firestore.dart';
Run Code Online (Sandbox Code Playgroud)

3) DateTime 到 TimeStamp / TimeStamp 到 DateTime

DateTime currentPhoneDate = DateTime.now(); //DateTime

Timestamp myTimeStamp = Timestamp.fromDate(currentPhoneDate); //To TimeStamp

DateTime myDateTime = myTimeStamp.toDate(); // TimeStamp to DateTime

print("current phone data is: $currentPhoneDate");
print("current phone data is: $myDateTime");
Run Code Online (Sandbox Code Playgroud)

4) 控制台

I/flutter (15177): current phone data is: 2019-04-17 11:28:26.953530
I/flutter (15177): current phone data is: 2019-04-17 11:28:26.953530
Run Code Online (Sandbox Code Playgroud)

用你的代码

User user = User(
  name: nameTxtController.text,
  email: emailTxtController.text,
  phone: mobileTxtController.text,
  userLanguage: userLanguage,
  userRights: userRight,
  lastUpdated: myTimeStamp //here
  dateCreated: myTimeStamp //here
);
Run Code Online (Sandbox Code Playgroud)


Pea*_*Gen 7

只需执行以下操作

User user = User(
      name: nameTxtController.text,
      email: emailTxtController.text,
      phone: mobileTxtController.text,
      userLanguage: userLanguage,
      userRights: userRight,
      lastUpdated: DateTime.now().millisecondsSinceEpoch,
      dateCreated: DateTime.now().millisecondsSinceEpoch

    );
Run Code Online (Sandbox Code Playgroud)

为此,您的user.lastUpdatedanduser.dateCreated应该是int模型中的类型(bean如果您来自 Java 背景)类

  • 时间戳以秒为单位,因此您需要执行以下操作:`(DateTime.now().millisecondsSinceEpoch / 1000).round()` (3认同)

Sai*_*i N 5

尝试一次,它对我有用

Timestamp.fromDate(DateTime.now())
Run Code Online (Sandbox Code Playgroud)

这里的时间戳来自Cloud Fire Store Package,需要将其添加到 pubspec.yaml 文件中