我有两个字符串输入date
& time
。 date
看起来像 12/01/2021
和time
看起来像 23:00
。我想知道使用 Flutter/Dart 将它们转换为 DateTime 对象的有效方法。
目前我正在使用以下代码。它工作得很好,但必须有更好的方法。
int year = int.parse(date.substring(6));
int month = int.parse(date.substring(0,2));
int day = int.parse(date.substring(3,5));
int hour = int.parse(time.substring(0,2));
int minute = int.parse(time.substring(3,5));
final DateTime newDate = DateTime(year,month,day,hour,minute);
最佳答案
在flutter中,我们可以使用DateTime.parse方法来达到此目的。您只需将字符串作为特定格式传递即可。
DateTime.parse("2012-02-27 13:27:00")
以下是一些可接受的字符串格式。
"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456789z"
"2012-02-27"
"13:27:00,123456789z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
"+20120227"
"2012-02-27T14Z"
"2012-02-27T14+00:00"
以下是我们将字符串转换为 DateTime 的 flutter 示例。
import 'package:flutter/material.dart';
void main() {
runApp( MaterialApp(
home: Home()
));
}
class Home extends StatefulWidget {
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
DateTime dt1 = DateTime.parse("2021-12-23 11:47:00");
DateTime dt2 = DateTime.parse("2002-02-27T14:00:00-0500");
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Convert String to DateTime"),
backgroundColor: Colors.redAccent,
),
body: Container(
alignment: Alignment.center,
padding: EdgeInsets.all(20),
child: Column(
children:[
Text(dt1.toString()),
Text(dt2.toString())
]
),
)
);
}
}
鸣谢:https://flutterforyou.com/how-to-convert-string-to-datetime-in-flutter/
更多有用资源的链接:
关于android - 将字符串时间和日期转换为 DateTime - Dart/Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70439617/