日期时间 Flutter

33

如何将当前时间转换为文本格式?我觉得这应该很简单,但我还是无法做到。

以下是基本示例;

enter image description here


4
请看我在 https://dev59.com/OFUK5IYBdhLWcg3wmw4S#51579740 的回答。 - boformer
6个回答

55

使用这里的答案,并稍作修改:

您可以尝试以下操作:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';



void main() {
 runApp(TabBarDemo());
}

class TabBarDemo extends StatelessWidget {
 @override
Widget build(BuildContext context) {
DateTime now = DateTime.now();
String formattedDate = DateFormat('kk:mm:ss \n EEE d MMM').format(now);
return MaterialApp(
  home: DefaultTabController(
    length: 3,
    child: Scaffold(
      appBar: AppBar(
        bottom: TabBar(
          tabs: [
            Tab(icon: Icon(Icons.access_alarm),text: "Alarm",),
            Tab(icon: Icon(Icons.access_time),text:"Clock" ,),
            Tab(icon: Icon(Icons.timer),text:"Timer"),
          ],
        ),
        title: Text('Tabs Demo'),backgroundColor: Colors.black,
      ),
      body: TabBarView(
        children: [
          Icon(Icons.access_alarm),
          Center(child: Text(formattedDate,textAlign: TextAlign.center,style: new TextStyle(fontWeight: FontWeight.bold,fontSize: 25.0),)),
          Icon(Icons.timer),
        ],
      ),
    ),
  ),
);
}
}

应该会给你这个:

flutter image


谢谢!你知道如何让时间保持更新吗?需要用到动画类吗? - Tom O'Sullivan
2
不,只是一个调用setState的计时器。这里有一篇有趣的文章:https://medium.freecodecamp.org/how-fast-is-flutter-i-built-a-stopwatch-app-to-find-out-9956fa0e40bd。 - Richard Heap
1
请注意,DateFormat 的构建代价相对较高(例如它必须解析格式字符串),因此最好不要每次重新构建它。 - Alan Knight
如何从现在开始倒计时到选择的日期? - phuocding
@RahulKushwaha 没问题! - Peter Haddad

18
在Flutter 1.20中: ``` DateTime now = DateTime.now(); print(now.hour.toString() + ":" + now.minute.toString() + ":" + now.second.toString()); ``` 注:以上代码用于获取当前时间并将其以时:分:秒的形式打印出来。

9

获取当前时间并以 AM/PM 格式显示。

dynamic currentTime = DateFormat.jm().format(DateTime.now());


2
你的回答非常有帮助,我只想知道如何以24小时格式获取时间。 - Roxx

7
var now = DateTime.now();
var formatterDate = DateFormat('dd/MM/yy');
var formatterTime = DateFormat('kk:mm');
String actualDate = formatterDate.format(now);
String actualTime = formatterTime.format(now);

3

设置持续运行的时钟:

void initState() {
_timeString = _formatTime(DateTime.now());

Timer.periodic(const Duration(seconds: 1), (Timer t) => _getTimeString());
super.initState();

然后使用get time来获取时间:

_getTimeString() {
final DateTime now = DateTime.now();
final String formattedTime = _formatTime(now);

setState(() {
  _timeString = formattedTime;    
});

用于格式化时间:

}

String _formatTime(DateTime dateTime) {
return DateFormat('hh:mm:ss').format(dateTime);

为了显示时间,创建一个文本小部件并使用

'$_timeString'

显示持续更新的时钟。


0

在Flutter应用程序中选择一个确切的时间,并将其放入本地通知包中...完整的详细指南。//(闹钟应用)输入图像描述


1
目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接