Campo DateTime Sqlite no Flutter

HI,

o campo do tipo DateTime não é suportado no Flutter

DateTime is not a supported SQLite type. Personally I store them as int (millisSinceEpoch) or string (iso8601).

Eu gravo data e hora em um campo do tipo Integer em milissegundos e depois converto para o formato data e hora quando preciso exibir.

Para obter o tempo atual em milissegundos:

int _date = new DateTime.now().millisecondsSinceEpoch;

E para exibir ao usuário:

DateFormat(‘yMd’,’pt_BR‘).add_jms().format(DateTime.fromMillisecondsSinceEpoch( _date ));

Estou utilizando o plugin intl: https://pub.dev/packages/intl

Para utilizar o parâmetro Locale, é preciso inicializar esse recuso com o método initializeDateFormatting();. Eu utilizei no arquivo main.

O trecho add_jms() inclui a parte da hora no resultado. Sem ele só exibiria a data.

Você pode testar o valor em milissegundos nesse site: https://www.epochconverter.com/

Fontes:

Formatting Dates in Flutter
http://blog.wafrat.com/formatting-dates-in-flutter/

intl package and date formatting strange behaviour
https://www.iditect.com/how-to/58349027.html

initLanguageSettings function
https://pub.dev/documentation/l10n/latest/l10n/initLanguageSettings.html

intl
https://pub.dev/packages/intl

sqflite
https://pub.dev/packages/sqflite

Intel +, Fiquem na Paz!!!

Deixe uma resposta