How to get a single digit hour string.format?

F

Frank Rizzo

Hello,

I am trying to print out an hour in a format of 3pm or 5am. I've tried
the following, but it throws an exception saying invalid input string:

string times = string.Format("{0:h}{1:tt}", startTime, startTime);

However, if I change h to hh, it works fine, but then it prints out 03am
string times = string.Format("{0:hh}{1:tt}", startTime, startTime);

Does string.Format not support single digit hour?
 
P

Peter Duniho

Hello,

I am trying to print out an hour in a format of 3pm or 5am. I've tried
the following, but it throws an exception saying invalid input string:

string times = string.Format("{0:h}{1:tt}", startTime, startTime);

However, if I change h to hh, it works fine, but then it prints out 03am
string times = string.Format("{0:hh}{1:tt}", startTime, startTime);

Does string.Format not support single digit hour?

It does. But not without a way to represent am/pm. Try:

string times = string.Format("{0:htt}", startTime);

or even more concise:

string times = startTime.ToString("htt");

The restriction seems arbitrary to me. Seems like a user ought to be able
to produce whatever string they want, even if it results in the loss of
information. But apparently the .NET designers felt differently. What
really bothers me is the inconsistency. The format "hh" by itself loses
the same information, but is allowed.

Anyway, there's a better way to do what you're doing anyway so the
inconsistent API shouldn't matter. :)

Pete
 
C

christery

so combine the solutions, pick the 2 last (am/pm always 2 char) and
concat with htt... or the other way aroud.. not wanting pm5....
I like 23 telling me Is tiem to go to sleep...
//CY
 
C

christery

so combine the solutions, pick the 2 last (am/pm always 2 char) and
concat with htt... or the other way aroud.. not wanting pm5....
I like 23 telling me Is tiem to go to sleep...
//CY

Or parse int... (tiem=time...)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top