[flutter] 플러터 intl을 사용해서 지역화된 날짜와 시간 표시를 어떻게 처리하나요?

먼저, intl 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 아래와 같이 intl 패키지를 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0

이제 main.dart 파일에서 intl 패키지를 import하고, MaterialApp 위젯의 localizationsDelegatessupportedLocales 속성을 설정해야 합니다. 예를 들어, 다음과 같이 설정할 수 있습니다:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Intl Example',
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        // 추가로 사용할 delegate 들을 여기에 추가할 수 있습니다.
        // 예를 들어 GlobalCupertinoLocalizations.delegate 등이 있습니다.
      ],
      supportedLocales: [
        const Locale('en', ''), // 영어
        const Locale('ko', ''), // 한국어
        // 지원할 언어들을 여기에 추가합니다.
      ],
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 현재 날짜와 시간을 가져오기 위해 DateTime.now()를 사용합니다.
    DateTime now = DateTime.now();

    // DateFormat을 사용하여 날짜와 시간을 형식화합니다.
    DateFormat dateFormat = DateFormat.yMMMMd('en'); // 예: September 20, 2022
    DateFormat timeFormat = DateFormat.Hm('en'); // 예: 14:30

    // 각 언어에 맞는 DateFormat으로 날짜와 시간을 형식화합니다.
    String formattedDate = dateFormat.format(now); // 예: 9월 20일, 2022
    String formattedTime = timeFormat.format(now); // 예: 14:30

    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Intl Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('현재 날짜: $formattedDate'),
            Text('현재 시간: $formattedTime'),
          ],
        ),
      ),
    );
  }
}

위의 예제 코드는 intl 패키지를 사용하여 현재 날짜와 시간을 형식화하고, 언어에 따라 다른 형식의 날짜와 시간을 표시하는 방법을 보여줍니다. DateFormat 클래스를 사용하여 날짜와 시간을 형식화할 수 있으며, Locale 클래스를 사용하여 언어를 지정할 수 있습니다. localizationsDelegatessupportedLocales 속성을 설정하여 앱을 다국어 지원할 수 있습니다.

더 자세한 내용은 공식 문서를 참고하시기 바랍니다.