Kotlin : Comment créer votre première application avec Eclipse ?

Je vous propose de vous montrer à travers ce didacticiel comment créer votre première application Kotlin “Hello World!” à l’aide d’Eclipse.

Présentation de Kotlin

Depuis quelque temps je m’intéresse au langage de programmation Kotlin développé par l’éditeur JetBrains connu pour ses environnements de développement intégré (IntelliJ IDEA, PhpStorm, …).

Ce langage de programmation orienté objet, fonctionnel propose un typage statique. Il tourne sous la machine virtuelle Java (JVM) et il peut également être compilé sous JavaScript.

Il est très proche de Java, de plus il a l’avantage d’être concis, simple et très facile à lire (et à écrire) au dire de son éditeur et des développeurs qui l’ont adopté. D’ailleurs de nombreuses applications connues ont été récrite ou réécrite avec Kotlin : Pinterest, Evernote, Uber par exemple.

Mise en place de l’environnement

Je pars du principe que vous disposez déjà d’Eclipse sur votre ordinateur. Sinon, vous pouvez l’obtenir à partir de la page de téléchargement. Je vous recommande la version « Eclipse IDE for Java EE Developers ».

Puis nous allons installer le plugin depuis Eclipse Marketplace en passant par le menu Help -> Eclipse Marketplace… et en recherchant le plugin :

A l’issue de l’installation, Eclipse demande un redémarrage pour finaliser la procédure, nous pouvons vérifier que le plugin Kotlin est correctement installé, en ouvrant la perspective Kotlin dans le menu principal Window -> Open Perspective -> Other

Créer un nouveau projet

Nous sommes maintenant prêts à créer un nouveau projet Kotlin.

Sélectionnez File -> New -> Kotlin Project pour démarrer.

Un projet vide sera créé et sera prêt pour l’écriture du code Kotlin qui cible la JVM.
Le projet créé, du point de vue d’Eclipse, est également un projet Java, ce qui signifie qu’il dispose du Kotlin Builder faisant référence à la bibliothèque d’exécution de Kotlin. L’avantage de cette solution est que nous pouvons continuer à ajouter des classes Java au projet, en mélangeant et en comparant le code Kotlin et Java si nécessaire.

Nous pouvons maintenant créer un nouveau fichier sous le dossier source.

Si vous omettez l’extension “.kt” dans le nom du fichier, ne vous inquiétez pas, Eclipse l’ajoutera automatiquement…

Une fois le fichier créé, nous devons taper la routine principale, qui est le point d’entrée d’une application Kotlin.
Enfin, nous ajoutons une simple ligne de code Kotlin pour imprimer le message “Hello World!” :

Exécuter l’application

Le moyen le plus simple d’exécuter l’application consiste à faire un clic droit quelque part dans le fichier principal et à sélectionner Run As -> Kotlin Application

Si tout s’est bien passé, la sortie de la fenêtre de la console devrait s’ouvrir automatiquement, affichant les résultats :

Nous avons maintenant notre première application Kotlin sous Eclipse.

Évidemment comme toutes les applications “Hello World!” on ne vérifie que le fait que les lignes de codes que vous avez tapés s’exécutent bien : rien d’extraordinaire !

Dans de prochains billets, je vous présenterai un peu plus Kotlin et surtout, j’évoquerai son usage dans le développement d’applications mobiles puisque Google à officialiser la compatibilité avec les smartphones Android.

Stay tuned…

 

Flutter : Comment créer un formulaire et une SnackBar ?

Avec ce tutoriel Flutter, je vais vous présenter la manière de construire un formulaire avec vérification pour éviter que la saisie soit non-nulle associé à un message d’alerte via une SnackBar d’alerte. Comme d’habitude je partage le code dans ce billet consacré à Flutter.

Le formulaire avec validation

Les applications demandent souvent aux utilisateurs de saisir des informations dans un champ de texte. Par exemple, vous pouvez demander aux utilisateurs de saisir un identifiant et un mot de passe pour valider l’accès à un espace privé.

Pour que votre application soit sûres et faciles à utiliser, vous devez vérifier si les informations fournies par l’utilisateur sont valides. Si l’utilisateur a correctement rempli le formulaire, traitez les informations. Si l’utilisateur soumet des informations incorrectes, affichez un message d’erreur convivial pour lui faire savoir ce qui ne s’est pas passé.

C’est à ce moment qu’intervient la SnackBar.

Champ formulaire Flutter stylé

Le code du champ de formulaire :

TextFormField(
  maxLength: 25,
  decoration: const InputDecoration(
      labelText: 'Champ de formulaire',
      hintText: 'Entrer du texte',
      border: OutlineInputBorder()),
  validator: (value) {
    if (value.isEmpty) {
      return 'Veuillez saisir un texte';
    }
    return null;
  },
)

La SnackBar

Elle permet d’informer brièvement vos utilisateurs lorsque certaines actions ont lieu. Par exemple, lorsqu’un utilisateur glisse un message dans une liste, vous pouvez l’informer que le message a été supprimé.

Vous pourriez même leur donner une option pour annuler l’action.

Snackbar de validation suite à action sur le bouton

Le code du bouton de validation et de la snackbar de confirmation :

child: RaisedButton(
  onPressed: () {
    // Retourne true si le formulaire est valide, sinon false
    if (_formKey.currentState.validate()) {
      // Affiche le Snackbar si le formulaire est valide
      Scaffold.of(context).showSnackBar(
          SnackBar(content: Text('Traitement en cours')));
    }
  },
  child: Text('Envoyer'),
)

Construire un formulaire et une SnackBar d’alerte

Dans l’exemple que je vous propose dans ce tutoriel Flutter, vous allez apprendre comment ajouter une validation à un formulaire qui comporte un seul champ de texte en suivant les étapes suivantes :

  • Créer un formulaire avec une clé globale.
  • Ajouter un champ de type TextFormField avec une logique de validation.
  • Créez un bouton pour valider et soumettre le formulaire.
  • Afficher une SnackBar lorsque la saisie est valide (non-nulle)
  • Fournir une action facultative

Voici le code complet du tuto Flutter :

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Formulaire et Snackbar',
      theme: ThemeData(
        primarySwatch: Colors.orange,
      ),
      home: MyHomePage(title: 'Formulaire et Snackbar'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        child: MyCustomForm(),
      ),
    );
  }
}

class MyCustomForm extends StatefulWidget {
  @override
  MyCustomFormState createState() {
    return MyCustomFormState();
  }
}

class MyCustomFormState extends State<MyCustomForm> {
  final _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    // Construire le formulaire avec _formKey créé au-dessus
    return Form(
      key: _formKey,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          TextFormField(
            validator: (value) {
              if (value.isEmpty) {
                return 'Veuillez saisir un texte';
              }
              return null;
            },
          ),
          Padding(
            padding: const EdgeInsets.symmetric(vertical: 16.0),
            child: RaisedButton(
              onPressed: () {
                // Retourne true si le formulaire est valide, sinon false
                if (_formKey.currentState.validate()) {
                  // Affiche le Snackbar si le formulaire est valide
                  Scaffold.of(context).showSnackBar(
                      SnackBar(content: Text('Traitement en cours')));
                }
              },
              child: Text('Envoyer'),
            ),
          ),
        ],
      ),
    );
  }
}

Retrouvez le code de ce tuto sur GitLab

J’espère que ce projet vous aidera à mieux comprendre comment construire un formulaire et une SnackBar avec Flutter. N’hésitez pas à ajouter vos commentaires ou questions ci-dessous, je me ferai un plaisir d’y répondre.

 

 

 

Photo by Josh Hild from Pexels

Top 20 des commandes Git

Les commandes Git sont essentielles, et elles aident à gérer efficacement votre code source. Dans ce guide, vous apprendrez les commandes Git du niveau débutant au niveau avancé.

Que vous soyez un développeur débutant ou expérimenté, vous devez utiliser le contrôle/versionnage des sources. Et il y a de bonnes chances que vous utilisiez Git pour gérer votre code source.

Et pour utiliser Git à son plein potentiel, vous devez connaître les commandes Git. Vous apprendrez ici les commandes Git les plus utiles qui vous permettront de passer d’un niveau de débutant à un niveau avancé.

Commandes Git de base

Dans cette section, vous allez apprendre les commandes essentielles de Git qui vous permettront par la suite d’apprendre des commandes plus avancées.

Voici les neuf commandes Git utiles.

1. git config

La commande git config est très utile. Surtout lorsque vous utilisez Git pour la première fois, ou que vous avez une nouvelle installation de Git. Cette commande va configurer votre identité – nom et adresse e-mail. Et ces informations seront utilisées à chaque commit.

Utilisation

$ git config --global user.name " Votre nom "
$ git config --global user.email "Votre adresse email"

2. version git

Comme son nom l’indique, il s’agit juste de vérifier quelle version de Git vous utilisez.

Utilisation

$ git version

3. git init

C’est probablement la première commande que vous utilisez pour démarrer un nouveau projet dans Git. Cette commande va créer un nouveau dépôt vierge, et vous pouvez ensuite stocker votre code source dans ce dépôt.

Utilisation

$ git init

Ou vous pouvez utiliser le nom du dépôt avec votre commande git init.

$ git init <votre nom de dépôt>

4. git clone

La commande git clone va utiliser un dépôt existant pour le copier.

Il y a une différence principale entre git init et git clone : vous utiliserez la commande git clone lorsque vous aurez besoin de faire une copie sur un dépôt existant. La commande git clone utilise en interne la commande git init d’abord et vérifie ensuite tout son contenu.

Utilisation

git clone <l'URL de votre projet>

5. git add

La commande Git add ajoutera tous les nouveaux fichiers de code ou les fichiers modifiés dans votre dépôt. Cette commande offre différentes options pour ajouter des fichiers et des dossiers.

Voici l’utilisation de la commande Git add.

Utilisation

$ git add votre_nom_de_fichier (cela ajoutera un seul fichier à votre zone de transit)
$ git add * ( cette option ajoutera tous les fichiers modifiés et nouveaux à la zone de transit)

6. git commit

Cette commande Git est essentielle. En termes simples, la commande Git commit ajoutera vos modifications à votre dépôt local.

Utilisation

$ git commit -m "votre message utile de commit"

7. git status

Cette commande Git est pratique pour voir combien de fichiers sont présents et nécessitent votre attention. Vous pouvez lancer cette commande à tout moment. Vous pouvez l’utiliser entre Git add et Git commits pour voir le statut.

Utilisation

$ git status

8. branche git

La plupart du temps, vous avez plusieurs branches dans votre dépôt Git. En termes simples, la branche est une ligne indépendante de développement de code. Avec la commande Git branch, vous pouvez gérer vos branches efficacement. Il existe de nombreuses options et commutateurs différents de la branche Git.

Pour simplifier les choses, je vais vous expliquer comment créer et supprimer une branche Git (si vous avez besoin de plus de détails, vous pouvez vous référer à la section Branches et Fusion de cet article).

Utilisation

Pour lister toutes les branches :

$ git branch

Pour créer une nouvelle branche :

$ git branch <branch_name>

Pour supprimer une branche :

$ git branch -d <branch_name>

9. git checkout

Cette commande Git est utilisée pour passer d’une branche à l’autre. C’est l’une des commandes git les plus puissantes et peut être utilisée comme un couteau suisse. En termes simples, voici la syntaxe pour passer à une autre branche.

Utilisation

$ git checkout <branche_nom>

Aussi, vous pouvez créer et checkout à une branche en une seule fois comme, voici l’utilisation pour cela.

$ git checkout -b <votre_nouveau_nom_de_branche>

Commandes Git de niveau intermédiaire

Après les commandes Git de base, il est temps de partager avec vous les commandes Git de niveau intermédiaire ; ces commandes Git sont super utiles si vous devez collaborer avec votre équipe, partager votre code avec d’autres. Il y a aussi des commandes comme Git log qui vous aideront à voir l’historique des commits précédents.

10. git remote

La commande Git remote agit comme une frontière, et si vous avez besoin de vous connecter avec le monde extérieur, vous devez utiliser la commande Git remote. Cette commande connectera votre dépôt local au dépôt distant.

Utilisation

$ git remote add <shortname> <url>

Exemple

$ git remote add origin https://dev.azure.com/aCompiler/_git/DemoProject

11. git push

Une fois que vous êtes connecté avec le dépôt distant (à l’aide de la commande git remote), il est temps de pousser vos modifications vers ce dépôt.

Utilisation

$ git push -u <nom_court> <votre_nom_de_branche>

Exemple

$ git push -u origin feature_branch

Vous devez avoir origin et upstream configurés avant d’utiliser Git push. Et voici la commande pour configurer upstream.

Utilisation

$ git push --set-upstream <nom_court> <nom_de_branche>

Exemple

$ git push --set-upstream origin feature_branch

12. git fetch

Lorsque vous avez besoin de télécharger les modifications des autres membres de l’équipe, vous devez utiliser git fetch. Cette commande téléchargera toutes les informations pour les commits, les refs, etc, afin que vous puissiez les examiner avant d’appliquer ces changements dans votre dépôt local.

Utilisation

$ git fetch

13. git pull

La commande Git pull télécharge le contenu (et non les métadonnées) et met immédiatement à jour votre dépôt local avec le dernier contenu.

Utilisation

$ git pull <remote_url>

14. git stash

Cette commande Git stocke temporairement vos fichiers modifiés. Vous pouvez travailler en stashed avec la commande Git suivante.

Utilisation

$ git stash

Et vous pouvez visualiser tous vos stashs avec la commande suivante

$ git stash list

Et si vous avez besoin d’appliquer un stash à une branche, utilisez simplement apply

$ git stash apply

15. git log

Avec l’aide du journal Git, vous pouvez voir tous les commits précédents avec le commit le plus récent apparaissant en premier.

Utilisation

$ git log

Par défaut, il vous montrera tous les commits de la branche actuellement extraite, mais vous pouvez le forcer à voir tous les commits de toutes les branches avec toutes les options.

$ git log --all

16. git shortlog

La commande shortlog vous montre un résumé de la commande Git log. Cette commande est utile si vous êtes juste intéressé par le résumé.

Cette commande est utile pour voir qui a travaillé sur quoi car elle regroupe les auteurs avec leurs commits.

Utilisation

$ git shortlog

17. git show

Par rapport au journal Git, cette commande git show vous montrera les détails d’un commit spécifique.

Utilisation

$ git show <votre_commit_hash>

18. git rm

Parfois, vous avez besoin de supprimer des fichiers de votre codebase, et dans ce cas, vous pouvez utiliser la commande Git rm. Elle peut supprimer les fichiers suivis de l’index et du répertoire de travail.

Utilisation

$ git rm <votre_fichier_nom>

19. git merge

Git merge vous aide à intégrer les changements de deux branches en une seule branche.

Utilisation

$ git merge <branch_name>

Cette commande fusionnera la branche <branch_name> dans votre branche actuelle sélectionnée.

20. git rebase

Git rebase est similaire à la commande git merge. Elle intègre deux branches en une seule, à une exception près. Une commande git rebase réécrit l’historique des commits. Vous devriez utiliser la commande Git rebase lorsque vous avez plusieurs branches privées à consolider en une seule branche. Elle rendra l’historique des commit linéaire.

Utilisation

$ git rebase <base>

 

 

Créer des cercles avec CSS3 avec support multi-navigateurs

Lorsqu’on est graphiste web on peut être amené à utiliser des formes à bordures arrondies dans les créations. Mais voilà au moment de passer à l’intégration de la maquette pour créer le site internet, l’intégrateur Web doit utiliser la propriété appelée border-radius : faire des cercles n’a jamais été aussi facile qu’avec CSS3.

Voici la propriété CSS avec la valeur qui rend éléments ressemblant à un cercle :

border-radius: 50%;

Par exemple, si vous voulez faire un élément qui ressemble à un cercle sa hauteur et la largeur doivent être égaux. Si la hauteur et la largeur de l’élément ne sont pas égaux, vous obtiendrez un ovale.

img { border-radius: 50%; }

Pour le support multi-navigateurs le modèle doit être complété par des préfixes différents suivant le fournisseur de border-radius propriété CSS et PIE. Ajoutant ainsi le support pour les anciennes versions de navigateurs tels que Safari, Chrome, Firefox et autres. PIE ajoute le support pour IE7 et IE8, et avant qu’il ne commence son travail le PIE doit être ajouté à un site Web tel que décrit dans l’article suivant: CSS3: Progressive Internet Explorer (PIE).

Voici styles finales avec support multi-navigateurs:

-webkit-border-radius: 50%;
-moz-border-radius: 50%;
-khtml-border-radius: 50%;
border-radius: 50%;
behavior: url(PIE.htc);

Voyons comment ils fonctionnent avec des éléments div:

div { 
   -webkit-border-radius: 50%; 
   -moz-border-radius: 50%; 
   -khtml-border-radius: 50%; 
   border-radius: 50%; 
   background-color: red; 
   width: 200px; 
   height: 200px; 
   position: relative; 
   behavior: url(PIE.htc);
}

 

 

 

SOURCE : Article sur BASICuse

Les taux de conversion de l’e-commerce secteur par secteur

Voici le dernier baromètre des performances e-commerce de Kantar Media Compete et Google. Il passe au crible taux de conversion, de rebond et d’abandon de 9 segments de marché.

Le taux de transformation des sites marchands français s’est amélioré de 13% entre 2012 et 2013, puis encore de 7% au 1er trimestre 2014.

Les taux de conversion de l'e-commerce secteur par secteur 2013

 

Taux de conversion par visite : pourcentage des visites ayant abouti à un achat ou à une réservation sur le site au cours de la même visite (défini par la page de paiement en ligne). L’évolution du taux de conversion par visite peut refléter une évolution de la part des acheteurs sur le site et/ou une évolution de la fréquence d’achat.

Taux de rebond : pourcentage des visites sur le site avec une seule page vue. Cet indicateur permet d’évaluer la qualité du trafic entrant sur le site ainsi que la pertinence des pages d’atterrissage.

Taux d’abandon : pourcentage des visites pour lesquelles l’internaute a démarré le processus de commande ou de réservation sur le site mais n’a pas finalisé sa commande ou sa réservation (définie par la page de paiement en ligne). Cet indicateur permet d’évaluer l’efficacité du tunnel de commande ou de réservation du site.

Lire l’article sur le Journal du Net

 

WordPress : Afficher des articles similaires sans plugin

Pour améliorer le nombre de pages visités sur votre blog WordPress, il peut-être intéressant de pouvoir proposer une liste d’articles connexes au sujet évoqué dans cet article. Évidemment, il existe de nombreux plugins pour effectuer ce travail mais je vais vous montrer comment ajouter des articles similaires à votre billet en intégrant quelques lignes de codes dans votre thème WordPress.

Pour ce faire vous devez modifier le codage de la page de l’article en éditant le fichier single.php.

Vous devez positionner ce code juste après l’affichage de votre article :

<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
    $tag_ids = array();
    foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    $args=array(
        'tag__in' => $tag_ids,
        'post__not_in' => array($post->ID),
        'showposts'=>5,
        'caller_get_posts'=>1
    );
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
        echo '<br><h2>Articles similaires</h2><br><ul>';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
            <li>
              <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
            </li>
        <?php
        }
        echo '</ul><br>';
    }
    wp_reset_postdata();
}
?>

Dans ce cas on affiche 5 articles les plus récents ayant au moins un mot-clé similaire.

Application mobile : Frais kilométriques

Aperto App - Indemnités kilométriques - Projet personnel développé en Flutter pour iPhone et Android

Présentation de l’app. mobile

Optimisez la gestion de vos frais kilométriques avec FraisKilo, votre allié intelligent pour le calcul précis des coûts liés à vos déplacements professionnels. Notre application simplifie le processus en se basant sur le barème officiel de l’URSSAF, garantissant une conformité totale.

Caractéristiques Clés

  1. Calcul Précis : FraisKilo utilise le barème officiel de l’URSSAF pour assurer des calculs précis des frais kilométriques, prenant en compte la puissance du véhicule et le nombre de kilomètres parcourus.
  2. Personnalisation Facile : Saisissez simplement la puissance de votre véhicule et le nombre de kilomètres, et laissez FraisKilo faire le reste. L’application s’adapte à vos caractéristiques spécifiques pour des résultats individualisés.
  3. Gain de Temps : Oubliez les calculs manuels fastidieux. FraisKilo automatise le processus, vous permettant de consacrer votre temps à des tâches plus importantes.
  4. Suivi Efficace : Gardez une trace de vos dépenses kilométriques avec facilité. FraisKilo vous offre un suivi clair et organisé de toutes vos données de déplacement.
  5. Conformité Assurée : Avec FraisKilo, vous bénéficiez de la certitude d’une conformité totale aux normes fiscales et aux barèmes officiels, évitant ainsi les erreurs coûteuses.

Soyez maître de vos dépenses kilométriques avec FraisKilo. Téléchargez l’application dès aujourd’hui et transformez la gestion de vos déplacements professionnels. Simplifiez, optimisez, et économisez avec FraisKilo Calculatrice.

Actualités de l’app. mobile

Mises à jour

  • 22 février 2019 – Conception du design et de la logique de calcul avec le langage de développement d’applications Flutter

News sur les indemnités kilométriques

Publication sur les stores

  • Android – Google Play : app. mobile non publiée
  • iPhone – App Store : app. mobile non publiée

Informations techniques

  • Après la publication de mon billet sur le calcul des indemnités kilométriques, j’ai eu l’idée de développer une application mobile pour Android et iOS en utilisant le langage de développement Flutter.

Kotlin : Comment gérer la date et l’heure ?

A la suite de mes derniers billets à propos du langage de programmation Kotlin dans lesquels je présentais les 10 raisons de choisir Kotlin pour développer vos applications et comment créer votre première application avec Kotlin, je vais vous démarrer une série de tutoriels et de snippets pour vous accompagner dans la prise en main de ce langage de programmation.

Pour démarrer, nous allons nous pencher sur la gestion des dates avec les exemples suivants :

Convertir une chaîne de caractères en date

  • Convertir une chaîne de caractères en date à l’aide de formateurs prédéfinis
  • Convertir une chaîne de caractères en date à l’aide d’un pattern formateur

Obtenir la date et l’heure actuelles

  • Obtenir la date et l’heure actuelles dans le format par défaut
  • Obtenir la date et l’heure actuelles avec un pattern
  • Obtenir l’heure de la date actuelle à l’aide de constantes prédéfinies
  • Obtenir l’heure de la date actuelle localisée

Additionner deux dates

Convertir une chaîne de caractères en date

Convertir une chaîne de caractères en date à l’aide de formateurs prédéfinis

Dans ce programme, vous apprendrez à convertir les chaînes de caractères en date en utilisant le formateur.

import java.time.LocalDate
import java.time.format.DateTimeFormatter

fun main(args: Array<String>) {
    // Format y-M-d or yyyy-MM-d
    val string = "2017-07-25"
    val date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE)
    
    println(date)
}

Lorsque vous exécutez le programme, la sortie sera :

2017-07-25

Dans le programme ci-dessus, nous avons utilisé le formatteur prédéfini ISO_DATE qui prend les chaînes de date au format 2017-07-25 ou 2017-07-25+05:45′.

La fonction parse() de LocalDate analyse la chaîne donnée en utilisant le formateur donné. Vous pouvez également supprimer le formateur ISO_DATE dans l’exemple ci-dessus et remplacer la méthode parse() par :

LocalDate date = LocalDate.parse(string, DateTimeFormatter);

 

Convertir une chaîne de caractères en date à l’aide d’un pattern formateur

import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.Locale

fun main(args: Array<String>) {
    val string = "July 25, 2017"
    val formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH)
    val date = LocalDate.parse(string, formatter)
    
    println(date)
}

Lorsque vous exécutez le programme, la sortie sera :

2017-07-25

Dans le programme ci-dessus, notre date est dans le format MMMMM j, aaaaa. Ainsi, nous créons un formateur du pattern donné.

Maintenant, nous pouvons analyser la date en utilisant la fonction LocalDate.parse() et obtenir l’objet LocalDate.

Obtenir la date et l’heure actuelles

Dans ce programme, vous apprendrez à obtenir la date et l’heure actuelles dans différents formats avec Kotlin.

Obtenir la date et l’heure actuelles dans le format par défaut

import java.time.LocalDateTime

fun main(args: Array<String>) {

    val current = LocalDateTime.now()
    
    println("Current Date and Time is: $current")
}

Lorsque vous exécutez le programme, la sortie sera :

Current Date and Time is: 2017-08-02T11:25:44.973

Dans le programme ci-dessus, nous avons défini un modèle de format Année-Mois-Jour Heures:Minutes:Secondes.millisecondes en utilisant un objet DateTimeFormatter.

Ensuite, nous avons utilisé la méthode format() de LocalDateTime pour utiliser le formateur donné. Ceci nous donne la sortie de la chaîne de caractères formatée.

Obtenir la date et l’heure actuelles avec un pattern

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

fun main(args: Array<String>) {
    val current = LocalDateTime.now()
    val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
    val formatted = current.format(formatter)

    println("Current Date and Time is: $formatted")
    
}

Lorsque vous exécutez le programme, la sortie sera :

Current Date and Time is: 2017-08-02 11:29:57.401

Dans le programme ci-dessus, nous avons défini un modèle de format Année-Mois-Jour Heures:Minutes:Secondes.millisecondes en utilisant un objet DateTimeFormatter.

Ensuite, nous avons utilisé la méthode format() de LocalDateTime pour utiliser le formateur donné. Ceci nous donne la sortie de la chaîne de caractères formatée.

Obtenir l’heure de la date actuelle à l’aide de constantes prédéfinies

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

fun main(args: Array<String>) {

    val current = LocalDateTime.now()
    val formatter = DateTimeFormatter.BASIC_ISO_DATE
    val formatted = current.format(formatter)

    println("Current Date is: $formatted")
    
}

Lorsque vous exécutez le programme, la sortie sera :

Current Date is: 20170802

Dans le programme ci-dessus, nous avons utilisé une constante de format prédéfinie BASIC_ISO_DATE pour obtenir la date ISO actuelle en sortie.

Obtenir l’heure de la date actuelle localisée

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle

fun main(args: Array<String>) {

    val current = LocalDateTime.now()
    val formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
    val formatted = current.format(formatter)
    
    println("Current Date is: $formatted")
}

Lorsque vous exécutez le programme, la sortie sera :

Current Date is: Aug 2, 2017 11:44:19 AM

Dans le programme ci-dessus, nous avons utilisé un média de style localisé pour obtenir la date et l’heure actuelles dans le format donné. Il y a aussi d’autres styles : Complet, long et court.

Additionner deux dates

Dans cet exemple, vous apprendrez à ajouter deux dates à l’aide de Calendar.

Depuis, l’époque Java des années 1970, n’importe quelle date représentée dans un objet Date ne fonctionnera pas. Cela signifie que vos Dates commenceront à partir de 1970 et que lorsque deux objets Date sont ajoutés, la somme sera amputée de1970 années.

Donc, nous utilisons Calendar pour régler ce soucis.

import java.util.Calendar

fun main(args: Array < String > ) {

    val c1 = Calendar.getInstance()
    val c2 = Calendar.getInstance()
    val cTotal = c1.clone() as Calendar

    cTotal.add(Calendar.YEAR, c2.get(Calendar.YEAR))
    cTotal.add(Calendar.MONTH, c2.get(Calendar.MONTH) + 1) // Zero-based months
    cTotal.add(Calendar.DATE, c2.get(Calendar.DATE))
    cTotal.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY))
    cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE))
    cTotal.add(Calendar.SECOND, c2.get(Calendar.SECOND))
    cTotal.add(Calendar.MILLISECOND, c2.get(Calendar.MILLISECOND))

    println("${c1.time} + ${c2.time} = ${cTotal.time}")

}

J’espère que ces exemples vous aideront à mieux comprendre à mieux gérer les dates et le temps avec Kotlin. N’hésitez pas à ajouter vos commentaires ou questions ci-dessous, je me ferai un plaisir d’y répondre.