【问题标题】:Flutter/Dart Extract just the Date and Time? [duplicate]Flutter/Dart 仅提取日期和时间? [复制]
【发布时间】:2021-10-15 15:27:09
【问题描述】:

如何在 Dart/Flutter 中重新格式化、转换或仅从该字符串中提取日期和时间?该字符串来自我的 MySQL 数据库中的默认时间戳;

2021-08-11T11:38:09.000Z

所以我需要的是这样的东西;

  2021-08-11 11:38

我在想也许是这样的;

final String? shortime = timestamp?.replaceAll(RegExp(''), '') ?? ''; 

但我不确定将什么用作正则表达式。

【问题讨论】:

    标签: mysql regex flutter dart


    【解决方案1】:

    您可以使用此代码:

    DateTime x = DateTime.parse("2021-08-11T11:38:09.000Z");
    

    然后创建一个函数来检查输入的数字:

    String checkNum(int x){
       return x<10?"0${x}":x.toString();
    }
    

    现在您可以按如下方式使用此功能:

      print(checkNum(x.year));
      print(checkNum(x.month)); // and so on...
    

    如果您有任何相关问题,请告诉我。 这是一个例子: .

    【讨论】:

    • 您尝试了解决方案吗?没有考虑到日期和时间要补0到数字总是两位数。
    • 我会更新我的答案,谢谢。
    • 我实际上使用了您的第一个答案。编辑过的给出了这个错误;无法从函数“checkNum”返回“Object”类型的值,因为它的返回类型为“String?”。
    • @Meggy 我再次编辑了我的答案(只是错过了 toString 前面的 () !)。现在您可以访问您想要的每个参数,例如(x.hour、x.minute 等),并且 checkNum 函数检查返回的字符串总是有两位数,例如它返回“01”而不是“1”跨度>
    • @Meggy 成功了吗?
    【解决方案2】:

    由于DateTime.parse 支持提供的时间戳,您可以执行以下操作:

    void main() {
      final dateTime = DateTime.parse('2021-08-11T11:38:09.000Z');
      print(convertDateTimeToString(dateTime)); // 2021-08-11 11:38
    }
    
    String convertDateTimeToString(DateTime dt) => '${dt.year}-'
        '${dt.month.toString().padLeft(2, '0')}-'
        '${dt.day.toString().padLeft(2, '0')} '
        '${dt.hour.toString().padLeft(2, '0')}:'
        '${dt.minute.toString().padLeft(2, '0')}';
    

    或者,您可以使用像 intl 这样的包,它支持使用格式化模式格式化 DateTime

    import 'package:intl/intl.dart';
    
    void main() {
      final dateTime = DateTime.parse('2021-08-11T11:38:09.000Z');
      final format = DateFormat('yyyy-MM-dd HH:mm');
      print(format.format(dateTime)); // 2021-08-11 11:38
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 2016-02-23
      • 1970-01-01
      • 2015-10-30
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2022-12-10
      相关资源
      最近更新 更多