当前位置: 首页 > 知识库问答 >
问题:

颤振/飞镖提取只是日期和时间?[副本]

易英奕
2023-03-14

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

2021-08-11T11:38:09.000Z
  2021-08-11 11:38
final String? shortime = timestamp?.replaceAll(RegExp(''), '') ?? ''; 

但是我不确定用什么作为regex。

共有1个答案

田修为
2023-03-14

由于提供的时间戳由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
}
 类似资料:
  • 我试图改变从API返回的日期字符串的格式。下面的日期格式输入字符串在java中工作正常,但在Dart中则不行。

  • 在flutter示例页面中,有一个名为“将数据发送到新屏幕”的项目。我对第65行的构造函数有一个重新保护的问题。

  • [![Plugins installed][1][1]我已经在android studio中安装了这些插件,并将C:\flatter\bin添加到系统环境变量中,但当我在PowerShell中运行flatter doctor时,它显示这些插件没有安装。我用的是Windows操作系统。

  • 我正在尝试格式化结果,并在用户的当前设备区域设置中向用户显示它。 当前,我可以显示整个,如下所示: 2018-10-08 16:08:37.464112 或者通过像这样指定确切的格式: 这导致以下内容: 08.10.2018 我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;例如,在美国(和许多其他国家),他们习惯于不同的日期格式,例如。 10/08/2018 我的问题是:如何以当前语

  • 我已经在我的服务器上创建了一个RSA密钥对,只有服务器才会有私钥。客户端(Flatter应用程序)将访问公钥。因此,当服务器收到加密消息时,它将知道消息来自正确的客户端,并将使用其私钥解密通过公钥加密的消息。 当服务器(php7.3)向客户端发送回复时,我想在服务器端通过私钥加密消息,以便客户端可以用公钥解密消息。 非对称加密有其自身的局限性,如最大字符长度。但如果能送来就好了 Flutter包加