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());
posted @ 2025-11-20 15:53  huiy_小溪  阅读(5)  评论(0)    收藏  举报