2017-10-18 13 views
-2

Comment puis-je modifier l'affichage du format de type date/heure? Exemple:Affichage du format de changement de date/heure SQL

de celui-ci (sqlite format par défaut):

("yyyy-mm-dd hh:mm:ss"); 

enter image description here

à ceci:

("dd/mm/yyyy, hh:mm"); 

Merci de nous aider.

+0

nouvelle SimpleDataFormat ("jj/mm/aaaa hh: mm", Locale.ROOT) .format (nouveau Date (long)); – Thracian

+0

Désolé, mais je ne comprends pas, pour obtenir le temps de la base de données je suis utiliser cette commande | employee.getTIME() | Et je récupère la chaîne avec la date sur ce format ("aaaa-mm-jj hh: mm: ss"); comment j'ai mis cette corde dans la commande que tu m'as donnée? – sharon2469

+0

Si les dates sont enregistrées en tant que chaînes, vous devez les analyser à Date avant de les reformater. Vérifiez la [conversion de la chaîne en date] (https://stackoverflow.com/questions/4216745/java-string-to-date-conversion). – Thracian

Répondre

0

d'abord obtenir une nouvelle date de la chaîne à partir de la base de données

//Convert the date string (I recieve the Date in String format from the SQLite DB) to a Date 
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault()); 
    Date convertedDate = new Date(); 
    try { 
//Here you convert the string from the employee time to a Date 
     convertedDate = dateFormat.parse(employee.getTIME()); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Utilisez ensuite une nouvelle SimpleDateFormat pour formater la date

String formatedDateToDisplay = new SimpleDateFormat("dd/MM/yyyy, HH:mm", Locale.getDefault()).format(convertedDate) 
+0

Merci beaucoup, ça marche bien :) – sharon2469

0

Lorsque vous obtenez la date de la DB exécuter à travers la premier code que nous publierons alors avant que vous enregistrez ou mettre à jour le DATE exécuter le deuxième code affiché

Code de style avec DASHES

 helper = new DBHelper(this); 
    dbList = new ArrayList<>(); 
    dbList = helper.getDataFromDB(); 

    if (dbList.size() > 0 && tORf.equalsIgnoreCase("false")) { 

     btnSave.setVisibility(View.INVISIBLE); 
     String NVrowid = String.valueOf(dbList.get(position).getRowid()); 
     String NVstation = dbList.get(position).getStation_Name(); 
     String NVpurchasedate = dbList.get(position).getDate_of_Purchase(); 
     StringBuilder addDASH = new StringBuilder(NVpurchasedate); 
     addDASH.insert(2, '-'); 
     addDASH.insert(5, '-'); 
     /* Code ABOVE formats date XX-XX-XXXX sent from DB */ 
     /* Stored as a 8 character string this format 01292017*/ 
     String NVcost = dbList.get(position).getGas_Cost(); 
     etStation.setText(NVstation); 
     etPurchaseDate.setText(addDASH); 
     etCost.setText(NVcost); 
    } 

Maintenant, avant d'enregistrer le code de retour à la DB exécuter à travers ce code

   if(etPurchaseDate.length()==10) { 
          /* NO spaces \ No = \ NO - \ NO -- \ ONLY numbers \ NO - at the end*/ 
       String tstr = "^(?!.*\\s)^(?=.*)^(?!-)(?!.*--)[0-9-]+(?<!-)$"; 
       String astr = etPurchaseDate.getText().toString().trim(); 
       Pattern regex = Pattern.compile(tstr); 
       Matcher regexMatcher = regex.matcher(astr); 

       boolean foundMatch = regexMatcher.find(); 


       if (foundMatch == true) {//IF FOUND REMOVE THE DASH'S AND STORE DATA 
       /* Routine puts DATE back in DB as 8 Character String REMOVES dashes "-" */ 
        StringBuilder removeTHIS = new StringBuilder(etPurchaseDate.getText().toString()); 
        String value = removeTHIS.toString().replace("-", ""); 
        etPurchaseDate.setText(value); 
        etCost.requestFocus(); 
        purchase_date = value; 
        etCost.requestFocus(); 
        //return; 
        Toast.makeText(DetailsActivity.this, "Date was Formatted for Storage", Toast.LENGTH_LONG).show(); 
       } 
      }