본문 바로가기

Personal Posting/Flutter

현재 날짜와 현재 시간, 초 단위 업데이트

현재 날짜의 텍스트 위젯과 현재 시간의 텍스트 위젯을 구현해야 되는 상황이 왔다.

날짜는 업데이트가 필요없지만 (23시 -> 0시 고려 불필요) 시간은 초단위로 변경되어야 하는 상황이었다.

  // 시간은 initState때 Timer를 이용하여 1초 마다 한번씩 렌더링을 진행시킨다.
  @override
  void initState() {
    controller = GifController(vsync: this);
    Timer.periodic(const Duration(seconds: 1), (Timer timer) {
      setState(() {
        final now = DateTime.now().toLocal();
        final formattedTime = DateFormat('HH:mm:ss').format(now);
        currentTime = formattedTime;
      });
    });
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    final now = DateTime.now();
    final formattedDate = DateFormat('yyyy년 MM월 dd일').format(now);
    ...
   // 시간은 실행 시 한번 세팅하고 변동없이 보이게 할 예정이다.

여기서 toLocal은 기기가 실행된 로컬 시간에 맞게 표기되는 걸 도와준다.

뭔가.. 이상하다..

구현 완료 및 정상동작 확인. 그런데 무언가 이상했다. 분명 Row 위젯으로 배치했는데 두 텍스트 위젯의 위치가 다른 것이었다. 이에 대한 내용은 다음 포스팅에서 진행하도록 한다.

'Personal Posting > Flutter' 카테고리의 다른 글

Android 앱화면 상태바 가리기  (0) 2023.09.21
RichText를 이용한 텍스트 관리  (0) 2023.09.21
위젯 겹치게 배치하기  (0) 2023.09.21
assets에 외부 파일 등록 후 접근  (0) 2023.07.27
Dart for Flutter - 시작  (0) 2023.04.18