Formatear fechas en Flutter

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:

Dardo formato incorporado

 

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:

Fecha formateada

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:

Más funciones de formato de fecha

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *