Ok found out the answer. It sorts the announcements by publish date, which is different from creation date. It uses publish date so that you can tell it to publish a week from now and it will be on top. But for those of us like me who don't really use the future publishing functionality, I just want it sorted by creation date. If this is how you want you want it to work, you have to edit the stored procedure. There are a few different ones, dob.dnnAnnouncements_GetCurrent, Get Expired, & GetAll. Open the one you want and on the last line edit the 'order by' part.
order by dbo.Announcements.ViewOrder asc, dbo.Announcements.PublishDate desc
order by dbo.Announcements.ViewOrder asc, dbo.Announcements.CreatedDate desc
The better way would have been when you are creating an announcement, make the Publish Date auto populate the current time to have them in an order of when they are created. Right now, if the user doesn't have a publish date, he assumes he doesn't need to enter a date. How is he supposed to know that it orders by this? So if he enters 5 announcements in one day, they are all set to 12:00am and are not ordered. Maybe they will correct this in the future, guess for now I just won't use the publish date functionality. I know it is not an 'error', but I am trying to make sites that are as user friendly and intuitive as possible.
Side Note: If you want to keep the user from, say, entereing a publish date, just put a div tag around the label, something like this <div style="visibility:hidden;"><dnn:label.....></div>