Как получить дату с 2020-02-27T15: 00: 43 + 0000 формат - PullRequest
1 голос
/ 27 февраля 2020

Здравствуйте, я пытаюсь сравнить date у меня в указанном формате c (формат 2020-02-27T15: 00: 43 + 0000) и сегодняшнюю дату.

Только дата, а не время.

String saleDate=2020-02-27T15:00:43+0000;

            public static int validateCustomer(int idCustomer, double saleBalance, double totalSaleValue, String saleDate){
    Config config= new Config().getConfig();
    ModuleRoute moduleRoute = new ModuleRoute().getModulesRoute(config.idRoute);
    double limit = (double) moduleRoute.allowPercentage;
    double paid =totalSaleValue-saleBalance;
    Date saleDateFormatD = null;
    Date dateToday = new Date();
    SimpleDateFormat saleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    try {
        saleDateFormatD = saleDateFormat.parse(saleDate);
    } catch (java.text.ParseException e) {
        e.printStackTrace();
    }
    SimpleDateFormat justDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    String formatSaleDateTime = justDateFormat.format(saleDateFormatD);
    String todayDate= justDateFormat.format(dateToday);
    if (formatSaleDateTime.equals(todayDate)){
        return 0;
    }else if ((paid)>(limit)*totalSaleValue){
        return 1;
    }else
        return 2;
    //if customer can, return true


}

В этом случае будет проверено, совпадают ли dt и date1.

date - строка в этом формате. Любая помощь или предложения будут великолепны. спасибо

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020

Попробуйте, надеюсь, это поможет вам

    //Declare it in your class.   
private static final DateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");      //Changed here
    //just set your saleDate as
String saleDate = "2020-02-27"; //now both are in same format

Date newDate = new Date();
String newDateFormat = sdf.format(newDate);
Log.d(TAG, "New Date: " + newDateFormat ); // It gave me output as - D/TAG: New Date: 2020-02-28
if (newDateFormat.equalsIgnoreCase(saleDate))  // make your static date as of same format ("yyyy-MM-dd")
{
      //Date is matched
}

Вы получите текущее время в указанном вами формате.

Теперь вы можете легко сравнить обе строки (newDateFormat & date) . (Оба в одном и том же формате).

Выполнение простых одинаковых строк для обеих строк.

0 голосов
/ 27 февраля 2020

Здесь у меня есть универсальная c функция, которая работает практически всегда (сохраняя летнее время):

function calcDiff2Dates(llegada, salida) {
    //DESMENUZAMOS ESE STRING
    var salidaParts = salida.split("/");
    var llegadaParts = llegada.split("/");

    // los meses empiezan en 0, de ahí -> dataParts[1] - 1
    var salidaDateObject = new Date(+salidaParts[2], salidaParts[1] - 1, +salidaParts[0]);
    var llegadaDateObject = new Date(+llegadaParts[2], llegadaParts[1] - 1, +llegadaParts[0]);

    //RECOGEMOS EL VALOR DE UN DIA PARA OPERAR
    const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
    const diffDays = Math.round(Math.abs((llegadaDateObject - salidaDateObject) / oneDay));

    //PASAMOS VALOR DEL CAMPO:
    //guardamos en var el htlm field que queremos popular
    var diasFiltroTop = $('#totalDiasFiltroTop');
    diasFiltroTop.html(diffDays);
};

Передайте как переменную и должны быть готовы:

var salida = document.getElementById('fechaArrivalFiltroTop').innerHTML;
var llegada = document.getElementById('fechaDepartureFiltroTop').innerHTML;

    calcDiff2Dates(llegada, salida);

В вашем случае, если возвращается 0, то это тот же день.

...