Yes the problem is with the hyphen. WordPress converts hyphens with with spaces to en-dash. Following is the conversion with hyphens with WordPress:
Foo {3 hyphens, spaced} Bar → Foo — Bar (em-dash)
Foo{3 hyphens, no space}Bar → Foo—Bar (em-dash)
Foo {2 hyphens, spaced} Bar → Foo — Bar (em-dash)
Foo{2 hyphens, no space}Bar → Foo–Bar (en-dash)
Foo {1 hyphen, spaced} Bar → Foo – Bar (en-dash)
Refer here for this.
For your specific issue, you can do the following. This has a limitation that date should be at the last of the title.
// WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
$title = str_replace( array( ' ', ' ', '–', '–', '—', '—' ), '-', get_the_title() );
// Explode using hyphen;
$title = explode( '-', $title );
// Remove last element i.e date.
array_pop( $title );
// Convert array to string.
$title = implode( $title );
// Echo.
echo $title;
OR
you can do the same using regex like the following which do not have the limitation as above:
// WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
$title = str_replace( array( ' ', ' ', '–', '–', '—', '—' ), '-', get_the_title() );
// Pattern for date with hyphen and space.
$pattern = '(\s\W\s\d+)';
// Replace with space.
echo preg_replace( $pattern, ' ', $title );