the_date() and the_time() functions display actual date an time instead of published date and time

the_date(): By default, it will echo the date of the post in the format F j, Y, so if the post was published on 20 November 2018, it would echo November 20, 2018.
get_the_date(): This fetches the date and doesn’t echo it out. To echo it, you’d use echo get_the_date(), which gives you the same result as the_date(). It’s useful if you’re already using echo in your code. It can also help you get round the problem of dates not being displayed, as you’ll see shortly.

You can also use get post id and using that id you can get post date and time


Reference https://code.tutsplus.com/tutorials/displaying-the-date-and-time-in-the-loop–cms-32237

echo get_the_date( get_post_ID());

<ul class="newsletters">
    <?php $query = new WP_Query( array(
        'post_type' => 'post',
        'category_name' => 'newsletters',
        'posts_per_page' => 8
    ) );
    while ($query->have_posts()) : $query->the_post(); ?>
    <li class="home newsletter"><a href="<?php the_permalink(); ?>"><?php the_title(); ?> - <?php echo get_the_date( 'j F, Y' ); ?></a></li>
    <?php endwhile; ?>
</ul>