关于DateTime的自定义转换
关于DateTime的自定义转换。把字符串时间转换成可以供DateTime类型识别的字符串类型的粗略实现。
/// <summary>
/// 把从数据库中读取的字符串的CurrentTime数据转换成可以被DateTime类型识别的格式
/// 可识别的格式如: 2009-06-15T13:45:30.6175425 -> 6175425
/// </summary>
public class CustomDateTimeConverter
{
public CustomDateTimeConverter() { }
//实现在时分秒间插入“:”
public string TimeStringConverter(string s)
{
string s2 = InsertChar(s, 3, ':');
string s3 = InsertChar(s2, 1, ':');
return s3;
}
//在第m+1个位置后插入一个字符c
// if s.length < m, insert into the end ?????
public string InsertChar(string s, int m, char c)
{
if (s.Length <= m) return s + c;
else return s.Insert(m + 1, new string(c, 1)); //int length = s.Length;
//length = length + 1;
//char[] temp = new char[length];
//for (int i = length - 1; i > m; i--)
//{
// temp[i] = s.ToArray()[i - 1];
//}
//temp[m + 1] = c;
//for (int i = 0; i <= m; i++)
//{
// temp[i] = s.ToArray()[i];
//}
//s = new string(temp);
//return s;
} public string DateStringConverter(string s)
{
string s1= InsertChar(s, 5, '-');
string s2 = InsertChar(s1, 3, '-');
return s2;
} /* Get sub string. */
private static string subString(string s, int index, int len)
{
if (s.Length <= index) return string.Empty;
else if (s.Length <= (index + len)) return s.Substring(index);
else return s.Substring(index, len);
} /* Parse a string into the int value with min and max. */
private static int toInt(string s, int min, int max)
{
int tmp;
int.TryParse(s, out tmp); if (tmp < min) tmp = min;
else if (tmp > max) tmp = max; return tmp;
} /* Try to parse date(YYYYMMDD) and time(HHMMSS.MMM) into DateTime.
*
* return default value if input a invalid parameter.
* */
public static DateTime TryToDateTime(string date, string time)
{
DateTime min = DateTime.MinValue;
DateTime max = DateTime.MaxValue; // year
int index = 0;
int year = toInt(subString(date, index, 4), min.Year, max.Year);
// month
index += 4;
int month = toInt(subString(date, index, 2), min.Month, max.Month);
// day
index += 2;
int day = toInt(subString(date, index, 2), min.Day, max.Day);
// hour
index = 0;
int hour = toInt(subString(time, index, 2), min.Hour, max.Hour);
// minute
index += 2;
int minute = toInt(subString(time, index, 2), min.Minute, max.Minute);
// second
index += 2;
int second = toInt(subString(time, index, 2), min.Second, max.Second);
// millisecond
index += 3;
int millisecond = toInt(subString(time, index, 3), min.Millisecond, max.Millisecond); return new DateTime(year, month, day, hour, minute, second, millisecond);
}
}
关于DateTime的自定义转换的更多相关文章
- 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换
[源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...
- 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换
介绍背水一战 Windows 10 之 绑定 DataContextChanged - FrameworkElement 的 DataContext 发生变化时触发的事件 UpdateSourceTr ...
- C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)
C# MVC 用户登录状态判断 来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.解决办法是: 而这位大哥提出的解决办法 ...
- sql server报【从varchar数据类型到datetime数据类型的转换产生一个超出范围的值】错误的解决办法
产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误. 如果类型是[datetime ...
- 5、flink常见函数使用及自定义转换函数
代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 一.flink编程方法 获取执行环境(execution environment) 加载/创建初始数据集 对 ...
- Spring自定义转换类,让@Value更方便
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 关于配置的文章已经写了很多,相信看过的人还是会有一定收获的,系列文章可阅读:南瓜慢说-配置相关文章.对于@Val ...
- 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值
这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...
- Nullable<System.DateTime>日期格式转换 (转载)
一.问题 1.html页面中时间显示出错,数据库中时间是正确的. 原因:没有把DateTime转成String类型. 2. 在C#中,发现不能直接使用ToString("yyyy-MM-d ...
- python time和datetime的常用转换处理
一.time 1.获取当前时间和时区 >>> now = time.time() # 当前时间 float类型 >>> time.strftime("%Y ...
随机推荐
- BitLocker驱动器加锁和解锁
应用场景: 单位配备给你使用的电脑(Win10系统),偶尔也会有其他人使用.你可以设置某一个磁盘为你的私密数据存储空间,只有你输入密码后才能进入磁盘.即使系统重装.硬盘被拆下来挂载到其他机器上,没有密 ...
- Springboot集成WebSocket实现智能聊天【Demo】
背景 openai 目前越来越流行,其他 ai 产业也随之而来,偶然翻到 openai接口文档,就想着可以调用接口实现智能聊天,接下来就写写我怎么接入 websocket 的过程,文笔不佳,谅解. 接 ...
- NATS: 请求-响应消息
请求-回复消息 https://docs.nats.io/nats-concepts/core-nats/reqreply 请求-回复 在分布式系统中,请求-回复是一种常见的模式.发送请求之后,应用程 ...
- 在 Azure AI Studio 中创建项目并使用聊天演练场
在 Azure AI Studio 中创建项目并使用聊天演练场 See: Create a project and use the chat playground in Azure AI Studio ...
- 技术实践|Hive数据迁移干货分享
导语 Hive是基于Hadoop构建的一套数据仓库分析系统,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能.它的优点是可以通过类SQL语句快速实现简单的MapReduce统计,不 ...
- JDK 18 最新动态和 JDK 19 新特性预测
JDK 18 最新动态和 JDK 19 新特性预测_语言 & 开发_Michael Redlich_InfoQ精选文章 里面提到文章 定界延续(delimited continuations) ...
- 如何在Linux上使用pbcopy和pbpaste命令
由于 Linux 和 Mac OS X 是基于 *Nix 的系统,因此许多命令可以在两个平台上运行.但是,某些命令可能在两个平台上都没有,比如 pbcopy 和 pbpast.这些命令仅在 Mac O ...
- 如何使用特定的SSH Key提交GIT
问题提出 最近在自己的MAC上面提交Github代码的时候发现居然失败了: $ git push origin master Permission denied (publickey). fatal: ...
- 龙哥量化:代写技术指标,通达信ZIG函数优化改进之字转向,高点用最高价,低点用最低价
如果您需要代写技术指标公式, 请联系我. 龙哥QQ:591438821 龙哥微信:Long622889 N:=50; A1:ZIG(3,N/10); 代码只有两行,参数是50,表示涨幅5%,在调参数时 ...
- 【原创】利用gitlab多项目自动部署到多个网站目录,自动同步更新,不用插件,重写钩子
原创内容,分享请保留链接. 0.首先在服务器安装gitlab,网上一堆过程省略 1.建几个空仓库admin.web.xxxx等(1个仓库也行).确保每个仓库名称和网站名称要有一致性,比如仓库叫admi ...