1. 程式人生 > 實用技巧 >C#long型資料轉化成時間戳(TimeSpan)

C#long型資料轉化成時間戳(TimeSpan)

.Net中TimeSpan建構函式

1      
2         public TimeSpan(long ticks);   // 以 100 毫微秒為單位表示的時間段。
3 
4         public TimeSpan(int hours, int minutes, int seconds);
5     
6         public TimeSpan(int days, int hours, int minutes, int seconds);
7    
8         public TimeSpan(int days, int hours, int minutes, int
seconds, int milliseconds);

.Net中構造TimeSpan函式

  1         // 返回表示指定天數的 System.TimeSpan,其中對天數的指定精確到最接近的毫秒。
  2         //
  3         // 引數:  value:  天數,精確到最接近的毫秒
  4         public static TimeSpan FromDays(double value);
  5       
  6         // 返回表示指定小時數的 System.TimeSpan,其中對小時數的指定精確到最接近的毫秒。
  7         //
引數: value: 精確到最接近的毫秒的小時數。 8 public static TimeSpan FromHours(double value); 9 10 // 返回表示指定毫秒數的 System.TimeSpan。 11 // 引數: value: 毫秒數。 12 public static TimeSpan FromMilliseconds(double value); 13 14 // 返回表示指定分鐘數的 System.TimeSpan,其中對分鐘數的指定精確到最接近的毫秒。
15 // 引數: value:分鐘數,精確到最接近的毫秒。 16 public static TimeSpan FromMinutes(double value); 17 18 // 返回表示指定秒數的 System.TimeSpan,其中對秒數的指定精確到最接近的毫秒。 19 // 引數: value: 秒數,精確到最接近的毫秒。 20 public static TimeSpan FromSeconds(double value); 21 22 // 返回表示指定時間的 System.TimeSpan,其中對時間的指定以刻度為單位。 23 // 24 // 引數: 表示時間的刻度數。並非是毫秒數。 25 public static TimeSpan FromTicks(long value); 26 27 // 將時間間隔的字串表示形式轉換為等效的 System.TimeSpan。 28 29 // 引數: s: 一個字串,用於指定進行轉換的時間間隔 30 public static TimeSpan Parse(string s); 31 32 // 使用指定的區域性特定格式資訊,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan。 33 // 34 // 引數: input: 一個字串,用於指定進行轉換的時間間隔。 35 // formatProvider: 一個提供區域性特定的格式設定資訊的物件。 36 public static TimeSpan Parse(string input, IFormatProvider formatProvider); 37 38 // 使用指定的格式、區域性特定格式資訊和樣式,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan。 字串表示形式的格式必須與一種指定的格式完全匹配。 39 // input: 一個字串,用於指定進行轉換的時間間隔。 40 // formats: 41 // 用於定義所需的 input 格式的標準或自定義格式字串的陣列。 42 // formatProvider: 一個物件,提供區域性特定的格式設定資訊。 // 43 // styles:列舉值的按位組合,用於定義可出現在 input 中的樣式元素。 44 public static TimeSpan ParseExact(string input, string[] formats, IFormatProvider formatProvider, TimeSpanStyles styles); 45 46 // 使用指定的格式字串陣列和區域性特定格式資訊,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan。 字串表示形式的格式必須與一種指定的格式完全匹配。 47 // 48 // 引數: input: 一個字串,用於指定進行轉換的時間間隔。 49 // formats: 用於定義所需的 input 格式的標準或自定義格式字串的陣列。 50 // formatProvider: 一個物件,提供區域性特定的格式設定資訊。 51 52 public static TimeSpan ParseExact(string input, string[] formats, IFormatProvider formatProvider); 53 54 // 使用指定的格式和區域性特定格式資訊,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan。 字串表示形式的格式必須與指定的格式完全匹配。 55 // 引數: input:一個字串,用於指定進行轉換的時間間隔。 56 // format: 用於定義所需的 input 格式的標準或自定義格式字串。 57 // formatProvider: 一個物件,提供區域性特定的格式設定資訊。 58 public static TimeSpan ParseExact(string input, string format, IFormatProvider formatProvider); 59 60 // 使用指定的格式、區域性特定格式資訊和樣式,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan。 字串表示形式的格式必須與指定的格式完全匹配。 61 // 引數: input:一個字串,用於指定進行轉換的時間間隔。 62 // format: 用於定義所需的 input 格式的標準或自定義格式字串。 63 // formatProvider:一個物件,提供區域性特定的格式設定資訊。 64 // styles: 列舉值的按位組合,用於定義可出現在 input 中的樣式元素。 65 public static TimeSpan ParseExact(string input, string format, IFormatProvider formatProvider, TimeSpanStyles styles); 66 67 // 將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan,並返回一個指示轉換是否成功的值。 68 // 引數: s: 一個字串,用於指定進行轉換的時間間隔。 69 // result: 此方法返回時,包含表示由 s 指定的時間間隔的物件;或者如果轉換失敗,則包含 System.TimeSpan.Zero。 此引數未經初始化即被傳遞。 70 public static bool TryParse(string s, out TimeSpan result); 71 72 // 使用指定的區域性特定格式設定資訊,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan,並返回一個指示轉換是否成功的值。 73 // 引數: input:一個字串,用於指定進行轉換的時間間隔。 74 // formatProvider:一個提供區域性特定的格式設定資訊的物件。 75 // result: 此方法返回時,包含表示由 input 指定的時間間隔的物件;或者如果轉換失敗,則包含 System.TimeSpan.Zero。 此引數未經初始化即被傳遞。 76 public static bool TryParse(string input, IFormatProvider formatProvider, out TimeSpan result); 77 78 // 使用指定的格式和區域性特定格式資訊,將時間間隔的指定字串表示形式轉換為其等效的 System.TimeSpan,並返回一個指示轉換是否成功的值。 字串表示形式的格式必須與一種指定的格式完全匹配。 79 // 引數: input: 80 // 一個字串,用於指定進行轉換的時間間隔。 81 // 82 // formats: 83 // 用於定義可接受的 input 格式的標準或自定義格式字串的陣列。 84 // 85 // formatProvider: 86 // 一個物件,提供區域性特定的格式設定資訊。 87 // 88 // result: 89 // 此方法返回時,包含表示由 input 指定的時間間隔的物件;或者如果轉換失敗,則包含 System.TimeSpan.Zero。 此引數未經初始化即被傳遞。 90 // 91 // 返回結果: 92 // 如果 true 成功轉換,則為 input;否則為 false。 93 public static bool TryParseExact(string input, string[] formats, IFormatProvider formatProvider, out TimeSpan result); 94 // 95 // 摘要: 96 // 使用指定的格式、區域性特定格式資訊和樣式,將時間間隔的字串表示形式轉換為其等效的 System.TimeSpan,並返回一個指示轉換是否成功的值。 字串表示形式的格式必須與指定的格式完全匹配。 97 // 98 // 引數: 99 // input: 100 // 一個字串,用於指定進行轉換的時間間隔。 101 // 102 // format: 103 // 用於定義所需的 input 格式的標準或自定義格式字串。 104 // 105 // formatProvider: 106 // 一個物件,提供區域性特定的格式設定資訊。 107 // 108 // styles: 109 // 用於指示 input 的樣式的一個或多個列舉值。 110 // 111 // result: 112 // 此方法返回時,包含表示由 input 指定的時間間隔的物件;或者如果轉換失敗,則包含 System.TimeSpan.Zero。 此引數未經初始化即被傳遞。 113 // 114 // 返回結果: 115 // 如果 true 成功轉換,則為 input;否則為 false。 116 public static bool TryParseExact(string input, string format, IFormatProvider formatProvider, TimeSpanStyles styles, out TimeSpan result); 117 118 public static bool TryParseExact(string input, string[] formats, IFormatProvider formatProvider, TimeSpanStyles styles, out TimeSpan result); 119 120 public static bool TryParseExact(string input, string format, IFormatProvider formatProvider, out TimeSpan result);

時間為long型的毫秒轉換成TimeSpan

public TimeSpan(long ticks);// 以 100 毫微秒為單位表示的時間段。

public static TimeSpan FromMilliseconds(double value);//long佔8位元組轉double也是8位元組。精度會丟失

自定義轉換方法

 1 private TimeSpan RevertMillsecToTimeSpane(long msec)
 2 {
 3    long day = 0;
 4    long hour = 0;
 5    long minute = 0;
 6    long second = 0;
 7    int millsec = 0;
 8    if(msec > 1000)
 9   {
10       second = msec / 1000;
11       millsec = (int)(msec % 1000);
12   }
13   if(second > 60)
14  {
15      minute = second / 60;
16      second = second % 60;
17   }
18   if(minute > 60)
19   {
20      hour = minute / 60; 
21      minute = minute % 60;
22    }
23   if(hour > 24)
24   {
25      day = hour / 24;
26       hour = hour % 24;
27    }
28     return new TimeSpan((int)day, (int)hour, (int)minute, (int)second, millsec);
29 }