我有两个字符串输入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);发布于 2021-12-21 18:06:14
在颤振中,我们可以使用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的颤振示例。
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/
有帮助的资源的更多链接:
https://stackoverflow.com/questions/70439617
复制相似问题