intl
메시지 번역, 복수형 및 성별, 날짜/숫자 형식 지정 및 구문 분석, 양방향 텍스트를 포함한 국제화 및 현지화 기능을 제공합니다.
이 라이브러리를 사용할려면 의존성을 추가해줘야 하며 터미널에서 진행 가능합니다
With Dart:
$ dart pub add intl
With Flutter:
$ flutter pub add intl
그러면 패키지의 pubspec.yaml에 다음과 같은 줄이 추가됩니다
사용할려면 import를 해줘야합니다
import 'package:intl/intl.dart';
초기화
모든 다양한 유형의 로케일 데이터에는 데이터를 사용할 수 있는지 확인하기 위한 비동기 초기화 단계가 필요합니다.
실제로 필요한 데이터만 로드하여 어플 크기가 줄어듭니다.
국제화의 각 영역(메시지, 날짜, 숫자)에는 별도의 초기화 프로세스가 필요합니다.
애플리케이션이 날짜 형식만 지정하면 되는 경우 메시지, 숫자 또는 필요하지 않은 기타 항목을 로드하는 데
시간이나 공간이 필요하지 않습니다.
숫자 형식 지정 및 구문 분석
숫자의 형식을 지정하려면 NumberFormat 인스턴스를 만듭니다.
var f = NumberFormat('###.0#', 'en_US');
print(f.format(12.345));
==> 12.35
날짜 형식화 및 구문 분석
DateTime 형식을 지정하려면 DateFormat 인스턴스를 만듭니다 . 이는 ICU/CLDR에서 가져온 일반적으로 사용되는 뼈대 세트를 사용하거나 명시적인 패턴을 사용하여 생성될 수 있습니다. 지원되는 스켈레톤 및 패턴에 대한 자세한 내용은 DateFormat을 참조하세요 .
DateFormat.yMMMMEEEEd().format(aDateTime);
==> 'Wednesday, January 10, 2012'
DateFormat('EEEEE', 'en_US').format(aDateTime);
==> 'Wednesday'
DateFormat('EEEEE', 'ln').format(aDateTime);
==> 'mokɔlɔ mwa mísáto'
동일한 뼈대나 패턴을 사용하여 날짜를 구문 분석할 수도 있습니다.
DateFormat.yMd('en_US').parse('1/10/2012');
DateFormat('Hms', 'en_US').parse('14:23:01');
뼈대를 결합할 수 있으며, 주요 용도는 전체 날짜와 시간을 인쇄하는 것입니다. 예:
DateFormat.yMEd().add_jms().format(DateTime.now());
==> 'Thu, 5/23/2013 10:21:47 AM'
알려진 제한사항: 시간대는 아직 지원되지 않습니다. Dart DateTime 객체에는 시간대가 없으므로 현지 또는 UTC입니다. 기간 형식 지정 및 구문 분석은 아직 구현되지 않았습니다.
특정 로케일에 대해 DateTime 형식을 지정하기 전에 호출을 통해 적절한 데이터를 로드해야 합니다.
import 'package:intl/date_symbol_data_local.dart';
...
initializeDateFormatting('de_DE', null).then(formatDates);
초기화 호출에서 반환된 future가 반환되면 형식 지정 데이터를 사용할 수 있습니다.
날짜 형식 데이터를 로드하는 다른 메커니즘이 구현되어 있지만 위와 같이 데이터를 라이브러리에 저장하고 지연 로드를 사용하여 필요한 부분만 로드하는 방식을 선호하므로 이러한 메커니즘은 더 이상 사용되지 않을 것으로 예상됩니다. 당분간 여기에는 모든 데이터가 포함되므로 코드 크기가 늘어납니다.
이건 강좌 보던거 예제 인데 위 코드와 상관없지만 출력이 어떻게 되는지 보여주기 위해 올려둡니다.
intl 공식문서
dart 시간 함수 사용 공식문서
https://api.flutter.dev/flutter/intl/DateFormat-class.html
'모바일 공부 > Flutter' 카테고리의 다른 글
TextEditingController (0) | 2024.03.26 |
---|---|
BottomSheet (0) | 2024.03.25 |
Spacer (0) | 2024.03.22 |
ListView (0) | 2024.03.19 |
UUID (0) | 2024.03.19 |