El método incorporado de Dart, para formatear fechas en Flutter de acuerdo con los requisitos, es muy limitado y restrictivo. Al tratar con fechas, debe estar en un formato legible por humanos, pero desafortunadamente, no hay forma de formatear fechas en flutter a menos que utilice un paquete de terceros.
En este artículo, analizaremos uno de esos paquetes conocido como paquete intl.
Usando el paquete intl:
Agregue las siguientes dependencias a su archivo pubspec.yaml , puede encontrar las dependencias más recientes aquí .
dependencies: intl: ^0.17.0
Agregar usando terminal:
También puede obtener la biblioteca internacional más reciente usando terminal fácilmente:
flutter pub add intl
Importarlo:
Eso es todo, ahora importe el paquete intl en su código Dart:
import 'package:intl/intl.dart';
Aún así, si enfrenta algún error al usar intl, simplemente use el siguiente comando:
flutter pub get
Ahora echemos un vistazo al siguiente ejemplo.
Ejemplo:
En el siguiente código no usaremos el paquete intl para formatear. Además, eche un vistazo a la salida del siguiente código.
Dart
import 'package:flutter/material.dart'; void main() { runApp(dateDemo()); } class dateDemo extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( // browser tab title title: "Geeksforgeeks", // Body home: Scaffold( // AppBar appBar: AppBar( // AppBar color backgroundColor: Colors.green.shade900, // AppBar title title: Text("Geeksforgeeks"), ), // Container or Wrapper body: Container( margin: EdgeInsets.fromLTRB(95, 80, 0, 0), // printing text on screen child: Text( // Formatted Date // Builtin format / without formatting DateTime.now().toString(), style: TextStyle( // Styling text fontWeight: FontWeight.bold, fontSize: 30), ), )), ); } }
Producción:
Ahora hagamos uso del paquete intl para formatear la fecha.
Dart
import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; void main() { runApp(dateDemo()); } class dateDemo extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( // browser tab title title: "Geeksforgeeks", // Body home: Scaffold( // AppBar appBar: AppBar( // AppBar color backgroundColor: Colors.green.shade900, // AppBar title title: Text("Geeksforgeeks"), ), // Container or Wrapper body: Container( margin: EdgeInsets.fromLTRB(95, 80, 0, 0), // printing text on screen child: Text( // Formatted Date DateFormat.yMMMEd() // displaying formatted date .format(DateTime.now()), style: TextStyle( // Styling text fontWeight: FontWeight.bold, fontSize: 30), ), )), ); } }
Producción:
Más funciones de formato de fecha:
La clase DateFormat en intl proporciona muchas funciones para formatear las fechas en consecuencia, como se muestra:
Usar | Descripción | Ejemplo |
---|---|---|
FormatoDate.yMMMEd().format(fecha) | Nombre del día, Nombre del mes, Fecha, Año | vie., 3 de sep. de 2021 |
DateFormat.MEd().format(fecha) | Nombre del día, mes/fecha en números | vie , 9/3 |
DateFormat.MMMMEEEEd().format(fecha)) | NombreDía,NombreMes Fecha | viernes, 3 de septiembre |
FormatoDate.yMMMMEEEEd().format(fecha)) | NombreDía ,NombreMes Fecha,Año | viernes, 3 de septiembre de 2021 |
DateFormat.EEEE().format(fecha) | Día completoSolo nombre | Viernes |
DateFormat.E().format(fecha) | Nombre de día corto | Vie |
DateFormat.M().format(fecha) | Número de mes | 9 |
FormatoDate.MMM().formato(fecha) | Nombre de mes corto | Sep |
DateFormat.LLLL().format(fecha) | Nombre de mes completo | Septiembre |
DateFormat.j().format(fecha) | Solo hora actual | 16:00 |
Ejemplo:
Dart
import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; void main() { runApp(dateDemo()); } class dateDemo extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Date-Demo", home: Scaffold( appBar: AppBar( // AppBar backgroundColor: Colors.green.shade900, // AppBar title title: Text("Geeksforgeeks"), ), body: Container( // Container/Wrapper width: double.infinity, child: Column( // use Column for more Text() mainAxisAlignment: MainAxisAlignment.center, children: [ Text( // Day,Month Date,Year DateFormat.yMMMEd().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // Day,Month/Date in Numbers DateFormat.MEd().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // DayName,MonthName Date DateFormat.MMMMEEEEd().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // DayName,MonthName Date,Year DateFormat.yMMMMEEEEd().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // Full DayName only DateFormat.EEEE().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // Short DayName DateFormat.E().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // Month-Number DateFormat.M().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // short MonthName DateFormat.MMM().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // full MonthName DateFormat.LLLL().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), Text( // Current Time only DateFormat.j().format(DateTime.now()), style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), ), ]), )), ); } }
Producción:
El intl es una biblioteca con muchas funciones, así que no termine aquí y explore más de sus documentos .
Publicación traducida automáticamente
Artículo escrito por thisisbillall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA