首页 > 解决方案 > 如何从字符串中检索值?

问题描述

这里 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??
            }
        });
    }
}

标签: javaandroidstring

解决方案


虽然,您可以使用正则表达式拆分字符串,但在这里,这是您需要学习的内容。简单日期格式。这将为您提供更多控制权,尤其是当您花时间使用它时。

  • 爪哇

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));
  • 科特林

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 有很多格式,您可以使用其中任何一种。


推荐阅读