flutter_daylight_savings 1.2.1 copy "flutter_daylight_savings: ^1.2.1" to clipboard
flutter_daylight_savings: ^1.2.1 copied to clipboard

Get upcoming daylight savings transitions from the system

example/lib/main.dart

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Daylight Savings Transitions',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

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

class _MyHomePageState extends State<MyHomePage> {
  List<DstTransition>? transitions;
  String errorMessage = '';

  void getTransitions() async {
    try {
      List<DstTransition> result = await FlutterDaylightSavings.getNextTransitions(count: 50);
      setState(() {
        transitions = result;
        errorMessage = '';
      });
    } catch (e, stacktrace) {
      setState(() {
        errorMessage = e.toString() + '\n' + stacktrace.toString();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Daylight Savings Transitions'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            if (errorMessage.isNotEmpty)
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(errorMessage, style: TextStyle(color: Colors.red)),
              ),
            ElevatedButton(
              onPressed: getTransitions,
              child: Text('Get Transitions'),
            ),
            if (transitions != null)
              Text('Found ${transitions!.length} transitions'),
            if (transitions != null)
              Expanded(
                child: ListView.builder(
                  itemCount: transitions!.length,
                  itemBuilder: (context, index) {
                    DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(transitions![index].unixtime * 1000);
                    String dateStr = DateFormat('yyyy-MM-dd HH:mm:ss').format(dateTime);
                    return ListTile(
                      title: Text('Timestamp: ${transitions![index].unixtime} ($dateStr)'),
                      subtitle: Text('Offset: ${transitions![index].localOffset}'),
                    );
                  },
                ),
              ),
          ],
        ),
      ),
    );
  }
}
1
likes
140
pub points
17%
popularity

Publisher

verified publisherjamcorder.com

Get upcoming daylight savings transitions from the system

Repository (GitHub)
View/report issues

Documentation

API reference

License

Unlicense (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_daylight_savings