Flutter DatePicker Korea

showDatePicker() 함수를 사용해 한국 날짜와 시간 설정을 적용하려면, 로케일을 한국(Korean)으로 설정해주는 방식으로 해결할 수 있습니다. Flutter에서 이를 위해 intl 패키지를 사용해 한국어 로케일을 적용하거나, locale 파라미터에 Locale('ko')를 직접 전달하여 달력을 한국어로 표시할 수 있습니다.

다음은 예제 코드입니다:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'DatePicker Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
      locale: Locale('ko'), // 한국어로 설정
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('ko'), // 한국어 지원 추가
      ],
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  DateTime? selectedDate;

  Future<void> _selectDate(BuildContext context) async {
    final DateTime? picked = await showDatePicker(
      context: context,
      initialDate: DateTime.now(),
      firstDate: DateTime(2000),
      lastDate: DateTime(2101),
      locale: const Locale('ko'), // 날짜 선택기의 언어를 한국어로 설정
    );
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
      });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('DatePicker Example'),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text(
              selectedDate == null
                  ? '날짜를 선택하세요'
                  : DateFormat('yyyy-MM-dd').format(selectedDate!), // 날짜 형식 설정
            ),
            SizedBox(height: 20.0),
            ElevatedButton(
              onPressed: () => _selectDate(context),
              child: Text('날짜 선택'),
            ),
          ],
        ),
      ),
    );
  }
}

설명

  • locale: const Locale('ko'): showDatePicker 함수의 locale 파라미터에 한국어 로케일을 지정하여 날짜 선택기가 한국어로 표시됩니다.
  • DateFormat('yyyy-MM-dd').format(selectedDate!): intl 패키지의 DateFormat 클래스를 사용하여 날짜 형식을 yyyy-MM-dd로 지정합니다. (패키지 추가는 필요)

이렇게 설정하면 날짜 선택기가 한국어로 표시되며, 한국 형식에 맞춘 날짜 형식을 출력하게 됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *