54 lines
1.3 KiB
Dart
54 lines
1.3 KiB
Dart
import 'dart:async';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:intl/intl.dart';
|
|
|
|
class DigitalClockWidget extends StatefulWidget {
|
|
const DigitalClockWidget({super.key});
|
|
|
|
@override
|
|
State<DigitalClockWidget> createState() => _DigitalClockWidgetState();
|
|
}
|
|
|
|
class _DigitalClockWidgetState extends State<DigitalClockWidget> {
|
|
DateTime _now = DateTime.now();
|
|
Timer? _timer;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_timer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
|
setState(() {
|
|
_now = DateTime.now();
|
|
});
|
|
});
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
_timer?.cancel();
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
// Format: 2026.01.24 (Sat) 15:43:36
|
|
final dateStr = DateFormat('yyyy.MM.dd (E)', 'ko_KR').format(_now);
|
|
final timeStr = DateFormat('HH:mm:ss').format(_now);
|
|
|
|
return Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Text(
|
|
'$dateStr $timeStr',
|
|
style: Theme.of(context).textTheme.displaySmall?.copyWith(
|
|
color: Colors.white,
|
|
fontWeight: FontWeight.bold,
|
|
letterSpacing: 1.2,
|
|
),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|