formattaData

fun formattaData(datap:String):String
{
//-------------- formatta data come yyyy-MM-dd  -------
    var data1 = ""
    var data2 = ""
    var p_data = datap
    var k = 0
    var errore = false
    //--- elimina eventuale presenza dei campi ore:minuti:secondi valorizzati a 0
    if (p_data.contains(" 00:"))
    {
        k = p_data.indexOf(" 00:")
        if (k>0)  p_data = p_data.substring(0,k)
    }
    //----- se la data è nel formato yyyy-MM-dd   nessuna operazione
    //----- se la data è nel formato yyyy/MM/dd   sostituzione di / con -
    var pattern = Pattern.compile("^\\d{4}(/|-)\\d{2}(/|-)\\d{2}\$", Pattern.CASE_INSENSITIVE)
    val matcher: Matcher = pattern.matcher(p_data)
    if (matcher.find()) {
        data2 = p_data.replace('/', '-')
    }
    //
    if (data2.length == 0) {
        var pattern = Pattern.compile("^\\d{2}(/|-)\\d{2}(/|-)\\d{4}\$", Pattern.CASE_INSENSITIVE)
        val matcher: Matcher = pattern.matcher(p_data)
        if (matcher.find()) {
            data1 = p_data.replace('-', '/')
            val sdf1 = SimpleDateFormat("dd/MM/yyyy")
            try {
                var d = sdf1.parse(data1)      //conversione da stringa a data
                val sdf2 = SimpleDateFormat("yyyy-MM-dd")
                 //conversione da da data a stringa nel formato yyyy-MM-dd
                data2 = sdf2.format(d) 
            } catch (e:Exception) {
                data2 = "Errore: " + datap
            }
        } else {
            data2 = "Errore: " + datap
        }
    }
    return data2
}

Lascia un commento