내가 내 밀리 세컨드의 값은 항상 세 가지 자되고 싶어, 그래서 패딩 해요 그것을, 필요한 경우 "0"로 : 난 항상 세 가지로 발스을 얻고있다왜 DateTime.Now.Millisecond 값이 항상 "000"입니까?
private String getPlatypusFileName(String billNum)
{
const string basePortion = "Platypus_";
String PlatypusFileName;
DateTime dt = DateTime.Now;
int Year = dt.Year;
int Month = dt.Month;
int Day = dt.Day;
int Hour = dt.Hour;
int Minute = dt.Minute;
int Second = dt.Second;
int Millisecond = dt.Millisecond;
String paddedBillNum = Prepad(6, billNum);
String mon = Prepad(2, Month.ToString());
String day = Prepad(2, Day.ToString());
String hour = Prepad(2, Hour.ToString());
String min = Prepad(2, Minute.ToString());
String sec = Prepad(2, Second.ToString());
String milli = Prepad(3, Millisecond.ToString());
PlatypusFileName = String.Format("{0}{1}_{2}{3}{4}{5}{6}{7}_{8}.xml",
basePortion, paddedBillNum, Year, mon, day, hour, min, sec, milli);
return PlatypusFileName;
}
private String Prepad(int finalSize, String originalVal)
{
String paddedVal = originalVal;
while (paddedVal.Length < finalSize)
{
paddedVal = "0" + paddedVal;
}
return paddedVal;
}
...하지만 " 밀리 초 부분은 0입니다. 반환 값은 다음과 같습니다.
Platypus_000003_20141008145606_000.xml
왜 그럴까요?
디버깅을 한 적이 있습니까? 밀리 세컨드 (Millisecond)는 0입니까, 아니면 Prepad가하는 것입니까? – Blorgbeard
이것은 다양한 값 "2", "907", "362"등입니다. –
이것은 실제로 저에게 잘 작동합니다 (밀리 초 부분은 정확하거나 적어도 0이 아닙니다). * 업데이트 * 다음은 작동하는 모습을 보여주는 피들입니다. https://dotnetfiddle.net/GyNClC –