How to show latest blog post rather then earliest

There must be something playing with your query (using pre_get_posts) as the default in WP is to load the last created post.

Use this WP_Query instead

$the_query = new WP_Query( 'posts_per_page=1&post_type=post' );
if ( $the_query->have_posts() ) {
 while ( $the_query->have_posts() ) {
    $the_query->the_post();
    ?>
    <h4>Posted on <?php the_time('F jS, Y') ?></h4>
    <p><?php the_content(__('(more...)')); ?></p>
    <?php
 } else {
  ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php
  <?php
}
wp_reset_postdata();