C# 常用类库(学习笔记10)
1. 数值转换
1.1 强制转换
int i = 3;
string j = "10";
double d = 11.5;
i = (int)d;
d = (double)i;
// i = (int)j; // 无法编译通过
1.2 Parse
一旦转换失败就会抛出异常。
i = int.Parse(j);
d = double.Parse(j);
1.3 TryParse
即使转换失败也不会抛出异常。
int.TryParse(j, out i);
double.TryParse(j, out d);
1.4 Convert
转换失败也会抛出异常。
i = Convert.ToInt32(j);
j = "10h";
d = Convert.ToDouble(j);// 转换失败,抛出异常。
j = Convert.ToString(d);
2. 字节转换(BitConvert)

/// <summary>
/// 转字节
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnToByte_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
byte[] bytes = BitConverter.GetBytes(i);
textBox2.Text = BitConverter.ToString(bytes);
}
/// <summary>
/// 转数字
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnToNumeric_Click(object sender, EventArgs e)
{
// 十六进制格式:00-C2-EB-0B
string[] strings = textBox3.Text.Split('-');
byte[] bytes = new byte[strings.Length];
int i = -1;
int sum = 0;
foreach (var item in strings)
{
bytes[++i] = byte.Parse(item, System.Globalization.NumberStyles.HexNumber);
sum = sum + bytes[i] * (1 << (i * 8));
}
textBox4.Text = Convert.ToString(sum);
// 第二种转换办法
sum = BitConverter.ToInt32(bytes, 0);
textBox4.Text = textBox4.Text + "/" + Convert.ToString(sum);
}
3. 不同进制之间的转换
二进制转为十进制,Convert.ToInt32(0b01100100)=100
二进制转为十六进制,Convert.ToString(0b01100100, 16)=64
十进制转为二进制,Convert.ToString(100, 2)=1100100
十进制转为十六进制,Convert.ToString(100, 16)=64
十六进制转为二进制, Convert.ToString(0x64, 2)=1100100
十六进制转为十进制, Convert.ToString(0x64, 10)=100
4.用不同进制定义变量
int m = 100;
int i = 0b00000011;
int n = 0x64;
5. DateTime
- 各种格式输出时间
DateTime.Now.ToString()=2025-11-21 11:22:34
年月日时分秒,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")=2025-11-21 11:22:34
年月日毫秒,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: FFF")=2025-11-21 11:22:34: 6109
年,DateTime.Now.ToString("yyyy")=2025
月,DateTime.Now.ToString("MM")=11
日,DateTime.Now.ToString("dd")=21
时,DateTime.Now.ToString("HH")=11
分,DateTime.Now.ToString("mm")=22
秒,DateTime.Now.ToString("ss")=34
毫秒,DateTime.Now.ToString("fff")=612
万分之一秒,DateTime.Now.ToString("ffff")=6126
一周中某天(短日期),DateTime.Now.ToString("ddd")=周五
一周中某天(完整),DateTime.Now.ToString("dddd")=星期五
- 时间运算
当前日期添加一天,DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")=2025-11-22
当前日期减去一天,DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")=2025-11-20
当前时间添加一小时,DateTime.Now.AddHours(1).ToString("HH:mm:ss"))=12:22:34
当前时间减去一小时,DateTime.Now.AddHours(-1).ToString("HH:mm:ss"))=10:22:34
添加Tick, DateTime.Now.AddTicks(-36000000000l).ToString("yyyy-MM-dd HH:mm:ss")=2025-11-21 10:22:34
- 时间转换
string s = "2025-11-21";
DateTime date = DateTime.Now;
DateTime.TryParse(s, out date);
Console.WriteLine(date.ToString()); // 2025-11-21
DateTime date2 = DateTime.Parse(s);
Console.WriteLine(date2.ToString());
本文来自博客园,作者:huiy_小溪,转载请注明原文链接:https://www.cnblogs.com/huiy/p/19247330

浙公网安备 33010602011771号