Flutter

23.01.23 화면에 현재 시간 표시하기

슈팅스타제제 2023. 1. 23. 23:33

변수 선언

나는 일단 위젯 안에서 쓸 현재 시간을 구하기 위해 

return 부분 위쪽에서 now 를 다음과 같이 선언한다. 

final String now = new DateTime.now().toString();

 

final 과 const 

const 는 컴파일 시에 상수화가 진행되고 final 은 런타임 시에 상수화가 진행되기 때문에 

final 의 경우 rebuild 가 가능하다는 특징이 있다는 점에서 const 를 사용하지 않고 final 을 사용하였다. 

 

위젯에서 사용하는 경우 다음과 같이 Text 안에 변수를 넣어준다. 

이때 굳이 `` 백틱을 사용할 필요는 없었다. 

Text('$now',
	style: TextStyle(
	color: Colors.white,
	fontSize: 35,
	fontWeight: FontWeight.w500,
	), 
),

 

결과는 뿅!

 

근데 이제 내가 항상 쓰는 포맷인 "23.01.23" 로 나오게끔 설정하려면 코드를 좀 수정해야 한다. 

 

먼저 해줘야 할 것이 있는데 pubspec.yaml 파일에서 intl: 버전 을 추가해준다. 

이게 플러터에서 패키지 불러오는 방식이다. 

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  # 여기에 추가해줌!!
  intl: ^0.17.0

그리고 DateFormat 함수를 쓰는 곳에 다음과 같이 패키지를 불러온다. 

import 'package:intl/intl.dart';

이전에는 DateTime 을 현재 시간으로 찍고 바로 toString 해서 뿌려줬다면

DateTime 타입은 그대로 가져와서 포맷 형식으로 바꾼 뒤 string 처리해주는 format 에 넣는다. 

=> format 함수 return type 이 string 인지는 확실하지 않기 때문에 확인 필요함.

  final now = new DateTime.now();
  String formattedDate = DateFormat('yy.MM.dd').format(DateTime.now());
  
  // return 부분에서 now 대신 formattedDate 를 사용한다. 어차피 now 못 씀.
  Text('$formattedDate',

 

이제 깰끔.!

'Flutter' 카테고리의 다른 글

22.10.03 레이아웃 만들기  (1) 2022.10.03
22.09.13 flutter 프로젝트 생성  (3) 2022.09.13
22.09.12 [jemerald] flutter 설치  (0) 2022.09.13