[flutter] 플러터 TimePicker에서 현재 시간 갱신하기

플러터에서 시간을 선택하는 TimePicker 위젯을 사용할 때, 기본적으로는 현재 시간이 선택되어 있지 않습니다. 하지만, 앱이 로드되고 나서 최초로 TimePicker를 보여줄 때 현재 시간으로 자동으로 설정하고 싶다면 어떻게 해야 할까요? 이 기능을 구현하는 방법에 대해 알아보겠습니다.

1. 현재 시간 가져오기

먼저, 현재 시간을 가져오는 방법을 알아보겠습니다. DateTime 클래스의 now() 메서드를 사용하여 현재 시간을 가져올 수 있습니다. 다음은 현재 시간을 가져오는 간단한 예시 코드입니다.

import 'package:flutter/material.dart';

void main() {
  DateTime currentTime = DateTime.now();
  print(currentTime); // 현재 시간 출력
  runApp(MyApp());
}

2. TimePicker에 현재 시간 설정하기

현재 시간을 가져왔다면, 이제 TimePicker에 현재 시간을 설정하는 방법을 알아보겠습니다. showTimePicker 함수를 사용하여 TimePicker를 보여줄 수 있습니다. initialTime 속성을 사용하여 초기 시간을 설정할 수 있습니다.

다음은 TimePicker를 보여주는 간단한 예시 코드입니다. 여기서는 initialTime 속성에 현재 시간을 사용하여 TimePicker에 현재 시간을 설정합니다.

import 'package:flutter/material.dart';

void main() {
  DateTime currentTime = DateTime.now();
  TimeOfDay selectedTime = TimeOfDay.fromDateTime(currentTime);

  runApp(MyApp(selectedTime: selectedTime));
}

class MyApp extends StatelessWidget {
  final TimeOfDay selectedTime;

  const MyApp({Key? key, required this.selectedTime}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Time Picker Example'),
        ),
        body: Center(
          child: ElevatedButton(
            child: Text('Open Time Picker'),
            onPressed: () {
              showTimePicker(
                context: context,
                initialTime: selectedTime,
              );
            },
          ),
        ),
      ),
    );
  }
}

위의 코드에서 selectedTime은 앱이 로드될 때 현재 시간을 가지고 있는 TimeOfDay 객체입니다. showTimePicker 함수에서 initialTime 속성에 이 selectedTime을 전달하여 현재 시간으로 TimePicker를 설정하게 됩니다.

이제 앱이 로드되고 최초로 TimePicker를 열면, 선택된 시간으로 현재 시간이 기본적으로 설정되는 것을 확인할 수 있습니다.

마무리

이번 글에서는 플러터에서 TimePicker를 사용할 때, 현재 시간을 자동으로 설정하는 방법을 알아보았습니다. DateTime.now()를 사용하여 현재 시간을 가져오고, 이를 showTimePicker 함수의 initialTime 속성에 전달하여 TimePicker에 현재 시간을 설정하였습니다.

더 많은 Flutter 관련 내용은 Flutter 공식 문서를 참고하시기 바랍니다.