2016-01-20 3 views
1

У меня есть юлианский день как «36», и я хочу преобразовать его в «036» аналогично «01» как «001». Я пытался, как это для чтения даты и конвертировать Юлиану датыКак изменить дату с dd на ddd для julian-day?

if (DateTime.TryParseExact(input, "dd'.'MM'.'yyyy", 
           CultureInfo.InvariantCulture, 
           DateTimeStyles.None, 
           out date)) { 
    // Success 
} else { 
    // Parse failed 
} 
DateTime myDT = new DateTime(date.Year, date.Month, date.Day, new JulianCalendar()); 
JulianCalendar mycal = new JulianCalendar(); 
String dateInString = mycal.GetDayOfYear(myDT).ToString(); 

Console.WriteLine(date1.ToString("ddd")); 

Если я использую «ДДД» отображает пн, вт, чт и т.д. не «036». конкретная цель Мне нужен юлианский день в трех цифрах, возможно ли это?

ответ

1

The "ddd" custom format specifier представляет собой сокращенное название дня. Вот почему вы получаете Mon, Tue, Thu и т. Д. Он не дает вам никакого числового значения.

Но так как вы уже использование GetDayOfYear, который возвращает номер дня в году как int, вы можете раздувание с String.PadLeft способом, как;

JulianCalendar mycal = new JulianCalendar(); 
String dateInString = mycal.GetDayOfYear(myDT).ToString().PadLeft(3, '0'); 

на один день числа цифр, как 1, это будет генерировать 001 но двойные цифры дня числа как 36, это произведет 036.

1

Если вы хотите, чтобы получить ведущие нули ДОР дату вы можете использовать leding нули, как это:

date1.Day.ToString("000") 

Если вы хотите использовать ваш string использовать PadLeft функцию string так:

date1.ToString("dd").PadLeft(3, '0'); 
+0

Отличная работа ... я пробовал ** String.PadLeft ** метод и работает. спасибо @Soner Gönül & teo van kot. Мне очень помогли. – user28542

Смежные вопросы