Как обращать String в Дате МИСКЛ в Android?

Привет у меня есть сомнение в том, какой лучший способ конвертировать string в date в android

fechauso = (EditText)findViewById(R.id.txt_fechadeuso);
String fechausoo = fechauso.getText().toString();

Я хочу конвертировать это в date, потому что также как и это у меня есть в момент сохранения этого в базе данных mysql в поле типа, Восходите, он сохраняет это мне так:

0000-00-00

Я пробую это решить следующего способа:

String newfecha = fechauso.getText().toString();
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
            Date fecha = sdf.parse(newfecha);
        } catch (ParseException e){
            e.printStackTrace();
        }

nameValuePairs = new ArrayList<NameValuePair>(1);
 nameValuePairs.add(new BasicNameValuePair("fecha_prestamo",newfecha.trim()));

но меня помечает следующая ошибка:

Incopatible types:
Required: java.sql.Date;
Found: java.util.Date

сумма следующего способа:

import java.sql.Date;

но все же продолжи помечать ошибку, они ofresco ты извиняешь, если я спрашиваю что-то очень основное, но enserio, который я прохожу потерянным...

2
задан 12.06.2016, 10:15
3 ответа

Восток serГ - в пример, чтобы обращать один String в Date, используя классы: import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.text.DateFormat; import java.util.Locale;

  try {
    String stringDate = "Junio 8, 2016";
    Locale espanol = new Locale("es", "ES");
    DateFormat format = new SimpleDateFormat("MMMM d, yyyy", espanol);
    Date date = format.parse(stringDate); //Obtienes el String como Date.
    Log.i("INFO", date.toString());
    } catch (ParseException e) {
        e.printStackTrace();
    }

ты должен иметь в виду, что ввода у тебя должен быть один String содержа текст в формате, который мог бы превращаться Date.

Другая форма может быть просто, не используя Locale :

  String stringDate= "Junio 8, 2016";
  DateFormat format = new SimpleDateFormat("MMMM d, yyyy");
  Date date = format.parse(stringDate);

ActualizaciГіn: Мне кажется, что этот вопрос остался "коротким", в чем ты нуждаешься, не состоит Гєnicamente в том, чтобы конвертировать: "String в Date в Android", в чем ты нуждаешься, состоит, на основании текста даты, попавшего в EditText, в том, чтобы менять другому формат. Первое, что ты должен реализовывать, состоит в том, чтобы определять, что формат - тот, которого они должны вводить в твой EditText (podrГ-схвати добавлять validador, чтобы уверять, пользователи не ошиблись) и определять tambiГ©n формат, который ты хочешь получить.

в твоем случае ты требуешь обращать 2016-6-8 в 2016-06-08 мы можем реализовывать это, таким образом, посредством этого mГ©todo, который ты можешь использовать, чтобы определять любой формат ввода и вывода:

   private static String convierteFecha(String stringFechaEntrada, String formatoEntrada, String formatoSalida){
        Log.i("TAG", "stringFechaEntrada :" +  stringFechaEntrada);
        //Definimos formato del string que ingresamos.
        SimpleDateFormat sdf = new SimpleDateFormat(formatoEntrada);
        try {
            Date date = sdf.parse(stringFechaEntrada);
            //Definimos formato del string que deseamos obtener.
            sdf = new SimpleDateFormat(formatoSalida);
            String stringFechaSalida = sdf.format(date);
            Log.i("TAG", "stringFechaSalida :" +  stringFechaSalida);
             Date dateSalida = sdf.parse(stringFechaSalida);
            //Log.i("TAG", "dateSalida :" +  dateSalida);
            return stringFechaSalida;
        }catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

, Если мы звоним mГ©todo предыдущий:

 Log.i("INFO : " , convierteFecha("2016-6-8", "yyyy-MM-dd", "yyyy-MM-dd"));

мы можем получать как результат 2016-06-08

С тем же самым mГ©todo ты можешь менять формат вывода:

Log.i("INFO : " , convierteFecha("2016-6-8", "yyyy-MM-dd", "dd/MM/yyyy hh:mm:ss.SSS"));

, чтобы получать 08/06/2016 12:00:00.000

даже менять тот информации ввода

Log.i("INFO : " , convierteFecha("18 Apr 2012", "dd MMM yyyy", "dd/MM/yyyy hh:mm:ss.SSS"));

получая 18/04/2012 12:00:00.000

2
ответ дан 24.11.2019, 14:12
  • 1
    Превосходный ответ, и достаточно ясная – RoyalUp 08.06.2016, 23:22
  • 2
    Если очень хороший ответ и не состоит в том, чтобы она не была ясной, если не, что после того, как совсем немного знал относительно темы, я не могу приспосабливать это к моей проблеме, уже я издал вопрос с твоим soluci и # 243; n – El Cóndor 09.06.2016, 00:39
  • 3
    Согласно которому я вижу, я также у меня есть проблемы после того, как импортирую эти книжные магазины, хороший первый пробуйте с той, о которой ты упомянул, и как он помечает меня, ошибка пробовала со второй import java.text.DateFormat; import android.text.format.DateFormat; – El Cóndor 09.06.2016, 00:54
  • 4
    @Elenasys в EditText типа Date я использую возникающий DatePickerDialog, пользователь, выбрав дату DatePickerDialog, остался бы в EditText: 2016-6-8 и в базе данных он был бы должен сохранять: 2016-06-08 – El Cóndor 09.06.2016, 02:20
  • 5
    Ofresco извинение, уже функционирует, проблема не сохранения дат после того, как форматировать ее была благодаря тому, что в файле php имя способа, отличного от переменных, все то, что я был должен делать, состояло в том, чтобы оставлять компьютер из-за немного, идти брать немного воздуха, видеть немного tv и после возвратившись там было ошибка и было так ovbio, большое спасибо помогать из-за мне @Elenasys – El Cóndor 09.06.2016, 04:07

Я присоединяю задержание моего кода и размещение того же самого: introducir la descripción de la imagen aquí

0
ответ дан 24.11.2019, 14:12

Поскольку я вижу ее situaciГіn, ты делаешь Date parse правильного способа String. Ошибка, которую я вижу, состоит в том, что ты нуждаешься в sql. Восходите, чтобы сохранять в твоей базе данных SimpleDateFormat он возвращает тебе полезного. Восходите, soluciГіn простой состоит в том, чтобы делать ее parse полезного. Восходите в sql. Восходите, что serГ - во что-то такое простое как.

java.util.Date miFechaUtil = new java.util.Date(System.currentTimeMillis()); //fecha actual en Util

java.sql.Date miFechaSql = new java.sql.Date(miFechaUtil.getTime()); //Mi fecha Sql..

или даже лучше

DateFormat format = new SimpleDateFormat("MMMM d, yyyy", espanol);
java.sql.Date date = new java.sql.Date(format.parse(stringDate).getTime()); 

Уже с твоей датой в sql. Восходите ты можешь сохранять ее в базе данных.

0
ответ дан 24.11.2019, 14:12