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}'),
                    );
                  },
                ),
              ),
          ],
        ),
      ),
    );
  }
}
2
likes
150
points
34
downloads

Publisher

verified publisherjamcorder.com

Weekly Downloads

Get upcoming daylight savings transitions from the system

Repository (GitHub)

Documentation

API reference

License

Unlicense (license)

Dependencies

flutter

More

Packages that depend on flutter_daylight_savings