【问题标题】:How to convert Flutter Date to TimeStamp?如何将 Flutter 日期转换为时间戳?
【发布时间】:2019-08-28 01:13:06
【问题描述】:

我需要向 REST API 发送一个 post 请求,其中包含一个 Date 值。但是 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()

    );

如何将其转换为Timestamp

【问题讨论】:

    标签: android ios datetime dart flutter


    【解决方案1】:

    试试这个,对我有用

    Timestamp.fromDate(DateTime.now())
    

    这里是来自Cloud Fire Store 包的时间戳,需要在 pubspec.yaml 文件中添加它

    【讨论】:

      【解决方案2】:

      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
      

      2) 在您的 file.dart 上

      import 'package:cloud_firestore/cloud_firestore.dart';
      

      3) 日期时间到时间戳/时间戳到日期时间

      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");
      

      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
      

      使用您的代码

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

      【讨论】:

        【解决方案3】:

        只需执行以下操作

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

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

        【讨论】:

        • 您还应该提到如何将其转换回 DateTime 类型
        • 将其隐藏起来 -> DateTime.fromMillisecondsSinceEpoch(user.lastUpdated);
        • 时间戳以秒为单位,因此您需要这样做:(DateTime.now().millisecondsSinceEpoch / 1000).round()
        猜你喜欢
        • 1970-01-01
        • 2021-08-17
        • 2019-08-24
        • 2012-04-10
        • 2016-11-26
        • 2019-04-03
        • 1970-01-01
        相关资源
        最近更新 更多