C# 点滴
a、asp.net core 获取当前区域(area)的名称:
_accessor.HttpContext.GetRouteValue("area"); //_accessor 是 IHttpContextAccessor 接口实例。
b、asp.net core 中获取当前请求的Url:
new StringBuilder().Append(request.Scheme).Append("://").Append(request.Host).Append(request.PathBase).Append(request.Path).Append(request.QueryString).ToString();
c、把星期/月份实例转换为指定区域文字:
DayOfWeek d = (DayOfWeek)1; int m = 1; //1月份 System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("zh-CN"); System.Globalization.DateTimeFormatInfo info = ci.DateTimeFormat; Console.WriteLine(info.GetAbbreviatedDayName(d)); //周一 Console.WriteLine(info.GetDayName(d)); //星期一 Console.WriteLine(info.GetAbbreviatedMonthName(m)); //1月
d、获取当前区域与UTC时间的时区差: TimeSpan ts = TimeZoneInfo.Local.BaseUtcOffset;
e、中国时间与太平洋时间互转
/// <summary> /// 中国时间转换为太平洋时间 /// </summary> /// <returns></returns> public static DateTime ChinaTimeToPacificTime(DateTime ChinaDateTime) { DateTime utcdt = TimeZoneInfo.ConvertTimeToUtc(ChinaDateTime, TimeZoneInfo.FindSystemTimeZoneById("China Standard Time")); return TimeZoneInfo.ConvertTimeFromUtc(utcdt, TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")); } /// <summary> /// 太平洋时间转换为中国时间 /// </summary> /// <param name="PacificDateTime"></param> /// <returns></returns> public static DateTime PacificTimeToChinaTime(DateTime PacificDateTime) { DateTime utcdt = TimeZoneInfo.ConvertTimeToUtc(PacificDateTime, TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")); return TimeZoneInfo.ConvertTimeFromUtc(utcdt, TimeZoneInfo.FindSystemTimeZoneById("China Standard Time")); }
f、元组的特殊扩展
/// <summary> /// 把一个特殊元组(仅2个元素,且都为int类型), 转换为int数组。比如日历控件中的日期,需要循环生成1-31日,使用此扩展就是 (1,31).ToArray(),就得到集合 1,2,3,4,.... /// </summary> /// <param name="SourceTuple"></param> /// <returns></returns> public static IEnumerable<int> ToArray(this (int Min, int Max) SourceTuple) { List<int> list = new List<int>(); if (SourceTuple.Max <= SourceTuple.Min) return list; for (int i = SourceTuple.Min; i <= SourceTuple.Max; i++) { list.Add(i); } return list; }
e、ipv4与长整型互转
/** * ip地址转成long型数字 * 将IP地址转化成整数的方法如下: * 1、通过String的split方法按.分隔得到4个长度的数组 * 2、通过左移位操作(<<)给每一段的数字加权,第一段的权为2的24次方,第二段的权为2的16次方,第三段的权为2的8次方,最后一段的权为1 * @param strIp * @return */ public static long IpToLong(string strIp) { string[] ip = strIp.Split('.'); return (long.Parse(ip[0]) << 24) + (long.Parse(ip[1]) << 16) + (long.Parse(ip[2]) << 8) + long.Parse(ip[3]); } /** * 将十进制整数形式转换成127.0.0.1形式的ip地址 * 将整数形式的IP地址转化成字符串的方法如下: * 1、将整数值进行右移位操作(>>>),右移24位,右移时高位补0,得到的数字即为第一段IP。 * 2、通过与操作符(&)将整数值的高8位设为0,再右移16位,得到的数字即为第二段IP。 * 3、通过与操作符吧整数值的高16位设为0,再右移8位,得到的数字即为第三段IP。 * 4、通过与操作符吧整数值的高24位设为0,得到的数字即为第四段IP。 * @param longIp * @return */ public static string LongToIP(long longIp) { return (longIp >> 24).ToString() + "." + ((longIp & 0x00FFFFFF) >> 16).ToString() + "." + ((longIp & 0x0000FFFF) >> 8).ToString() + "." + (longIp & 0x000000FF).ToString(); }
2022-05-26
C#
蔡大卫,广东揭阳人氏,现居深圳,从事互联网行业,专注程序编码工作20年。目前正在创业。
发布评论