According to docs I can use JMeter Thread scheduler with Duration and/or Startup Delay which override End time and Start time respectively.
You can configure Duration (seconds) and Startup Delay (seconds) to control the duration of each thread group and the after how much seconds it starts. When the test is started, JMeter will wait Startup Delay (seconds) before starting the Threads of the Thread Group and run for the configured Duration (seconds) time. Note those 2 options override the Start time and End time.
Alternatively (although not recommended as not very flexible) you can use the two other fields Start time and End time.
But in JMeter UI I can't delete Start time and End time, because if I delete its values it return with current time although irrelevant.
Before After: Is it a bug or there's a reason for that behavior?