使用这里的答案,并稍作修改:
您可以尝试以下操作:
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),
],
),
),
),
);
}
}
应该会给你这个:
setState
的计时器。这里有一篇有趣的文章:https://medium.freecodecamp.org/how-fast-is-flutter-i-built-a-stopwatch-app-to-find-out-9956fa0e40bd。 - Richard Heap获取当前时间并以 AM/PM 格式显示。
dynamic currentTime = DateFormat.jm().format(DateTime.now());
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);
设置持续运行的时钟:
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'
显示持续更新的时钟。