Как получить значение из строки? - PullRequest
0 голосов
/ 08 мая 2020

Здесь dob - строковое значение. Как я получу конкретное значение из String. Пожалуйста, проверьте мой упомянутый код, если он мне нужен.

public class MainActivity extends AppCompatActivity {
        private EditText editTextDate;
           private Button mButton;

          private static final String DATE_FORMAT = "dd/MM/YYYY";

           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
                      initView();
                      btnClick();
                  }

          private void initView() {
          editTextDate = findViewById(R.id.date);
                 }

        private void btnClick() {
             mButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                String dob = editTextDate.getText().toString();
                // dob is is a date like 25/05/1995
                // I want to 1995 value. What will i do??
            }
        });
    }
}

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Хотя вы можете go для разделения строки с помощью регулярного выражения, но здесь это то, что вам нужно изучить. SimpleDateFormat. Это даст вам гораздо больше контроля, особенно когда вы будете использовать время с ним.

  • Java

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
Date yourDate = format.parse("25/05/1995");
Calendar yourCal = new Calendar.getInstance();
yourCal.setTime(yourDate);
Log.d("Tag","Day : "+ yourCal.get(Calendar.DAY_OF_MONTH));
Log.d("Tag","Month: " + yourCal.get(Calendar.MONTH) + 1);
Log.d("Tag","Year: " + yourCal.get(Calendar.YEAR));
  • Kotlin

val format = SimpleDateFormat("dd/MM/yyyy", Locale.getDefault())
val yourDate = format.parse("25/05/1995")
val yourCal: Calendar = Calendar.getInstance()
yourCal.time = yourDate!!
Log.d("Tag", "Day : " + yourCal[Calendar.DAY_OF_MONTH])
Log.d("Tag", "Month: " + yourCal.get(Calendar.MONTH) + 1)
Log.d("Tag", "Year: " + yourCal.get(Calendar.YEAR))

Помните, что месяц начинается с 0 для января, так что вы получаете +1 в этом, И заглавная 'M 'обозначает месяц в java, где маленькая' m 'обозначает минуты. Для SimpleDateFormat существует множество форматов, вы можете использовать любой из них.

0 голосов
/ 08 мая 2020

Просто используйте соответствующую функцию. String # split ()

String dob = editTextDate.getText().split("/")[2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...