tl;dr
Sort the List by specifying a Comparator.
record Employee ( String name , LocalDate hired ) {}
List < Employee > employees = new ArrayList<>() ;
…
employees.sort
(
Comparator
.comparing( Employee :: hired )
.thenComparing( Employee :: name );
);
Or, build the Comparator into the class, implementing Comparable, then tell the List to sort by natural order.
public record Employee( String name , LocalDate hired )
implements Comparable < Employee >
{
private static final Comparator < Employee > COMPARATOR =
Comparator
.comparing( Employee :: hired )
.thenComparing( Employee :: name );
@Override
public int compareTo ( final Employee other )
{
return Employee.COMPARATOR.compare( this , other );
}
}
List < Employee > employees = new ArrayList<>() ;
……
employees.sort() ;
Or, replace that List with a SequencedSet like TreeSet that auto-sorts as you add.
SequencedSet < Employee > seniority = new TreeSet<>() ;
java.time
You said:
one of the datamembers is a DateTime object
Java has no DateTime class. For date-time types, use the java.time classes built into Java 8+.
For a date-only value (year-month-day), use java.time.LocalDate class.
Records
If the main purpose of your class is to transparently communicate shallowly-immutable data, define it as a record.
record Employee ( String name , LocalDate hired ) {}
Sequenced Collections
Java 21 brought sequenced collections. See JEP 431 and video.

SequencedCollection is a super-interface of List and therefore ArrayList.
List#sort
Now you could just call List#sort. Pass a Comparator object to specify how to sort.
List < Employee > employees =
new ArrayList <>(
List.of(
new Employee( "Alice" , LocalDate.of( 2022 , Month.JANUARY , 23 ) ) ,
new Employee( "Bob" , LocalDate.of( 2019 , Month.JANUARY , 23 ) ) ,
new Employee( "Carol" , LocalDate.of( 2018 , Month.JANUARY , 23 ) ) ,
new Employee( "Davis" , LocalDate.of( 2025 , Month.JANUARY , 23 ) )
)
);
employees.sort
(
Comparator
.comparing( Employee :: hired )
.thenComparing( Employee :: name );
);
Natural order
We can make that comparator a built-in part of our class. Then objects of our class would know how to sort themselves by implementing the Comparable interface.
public record Employee( String name , LocalDate hired )
implements Comparable < Employee >
{
private static final Comparator < Employee > COMPARATOR =
Comparator
.comparing( Employee :: hired )
.thenComparing( Employee :: name );
@Override
public int compareTo ( final Employee other )
{
return Employee.COMPARATOR.compare( this , other );
}
}
Being able to sort themselves is called “natural order”.
SequencedSet
But instead of sorting your list, I would suggest using a collection that automatically sorts your objects as you add them.
For that collection, I suggest a SequencedCollection that is a SequencedSet, such as TreeSet.
Pass your existing list to the constructor of a TreeSet, a SequencedSet, to automatically sort themselves. Since our Employee objects implement Comparable, we need not specify any Comparator.
SequencedCollection < Employee > seniority = new TreeSet <>( employees );
Dump to console.
seniority.forEach( IO :: println ); // Before Java 25, swap out `IO` for `System.out`.
When run:
Employee[name=Carol, hired=2018-01-23]
Employee[name=Bob, hired=2019-01-23]
Employee[name=Alice, hired=2022-01-23]
Employee[name=Davis, hired=2025-01-23]
DateTimeclass, this is no longer so. Migrate your code to java.time, the modern Java date and time API. The date-time classes from there implementComparable, making your sorting task trivial. See the good and thorough answer by Basil Bourque.