【问题标题】:Convert String time and date to DateTime - Dart/Flutter [duplicate]将字符串时间和日期转换为 DateTime - Dart/Flutter [重复]
【发布时间】:2022-01-23 02:54:15
【问题描述】:

我有两个 String 输入 datetimedate 看起来像 12/01/2021time 看起来像 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);

【问题讨论】:

标签: android flutter dart


【解决方案1】:

在颤振中,我们可以使用 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"

以下是我们将字符串转换为日期时间的颤振示例。

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/

更多有用资源的链接:

Convert String to DateTime in flutter

Parse string to DateTime in Flutter (Dart)

【讨论】:

  • DateFormat('M/d/y kk:mm').parse('$date $time');这条线为我解决了它。谢谢
猜你喜欢
  • 2013-05-04
  • 2013-03-12
  • 2018-08-29
  • 2012-12-05
  • 2016-07-30
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
相关资源
最近更新 更多