关于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的自定义转换的更多相关文章

  1. 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换

    [源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...

  2. 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换

    介绍背水一战 Windows 10 之 绑定 DataContextChanged - FrameworkElement 的 DataContext 发生变化时触发的事件 UpdateSourceTr ...

  3. 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 ...

  4. System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

    System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.解决办法是: 而这位大哥提出的解决办法 ...

  5. sql server报【从varchar数据类型到datetime数据类型的转换产生一个超出范围的值】错误的解决办法

    产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误. 如果类型是[datetime ...

  6. 5、flink常见函数使用及自定义转换函数

    代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 一.flink编程方法 获取执行环境(execution environment) 加载/创建初始数据集 对 ...

  7. Spring自定义转换类,让@Value更方便

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 关于配置的文章已经写了很多,相信看过的人还是会有一定收获的,系列文章可阅读:南瓜慢说-配置相关文章.对于@Val ...

  8. 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值

    这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...

  9. Nullable<System.DateTime>日期格式转换 (转载)

    一.问题 1.html页面中时间显示出错,数据库中时间是正确的. 原因:没有把DateTime转成String类型. 2.  在C#中,发现不能直接使用ToString("yyyy-MM-d ...

  10. python time和datetime的常用转换处理

    一.time 1.获取当前时间和时区 >>> now = time.time() # 当前时间 float类型 >>> time.strftime("%Y ...

随机推荐

  1. java 死锁问题排查

    排查过程 1.识别死锁现象 通常,死锁会表现为应用程序挂起,不响应用户请求或 cpu 使用率下降. 2.收集线程转储 当应用出现不响应时,可以使用以下方法收集线程转储: jstack -l 进程ID ...

  2. S2P销讯通-SFE人才对企业管理层至关重要

    SFE这一概念,最初由外资企业引入,如今已逐渐被内资企业所采纳并融入其组织结构中,不少企业正积极构建这一部门. 1 我们观察到,近两年企业内对于SFE部门所需的人才需求急剧上升.这一部门,在外资企业中 ...

  3. Reviewbot 开源 | 这些写 Go 代码的小技巧,你都知道吗?

    Reviewbot 是七牛云开源的一个项目,旨在提供一个自托管的代码审查服务, 方便做 code review/静态检查, 以及自定义工程规范的落地. 自从上了 Reviewbot 之后,我发现有些 ...

  4. Vue中使用ref属性获取元素||组件标签

    元素绑定属性 //绑定ref属性 <table ref="refTable"></table> 获取元素 //在方法内 this.$refs.refTabl ...

  5. Fiddler抓包数据乱码

    前情 最近在项目测试中,使用到Fiddler来抓包看接口请求相关的情况 坑 通过Fiddler抓包,在Fiddler中看到的数据都是正常的,但是保存到本地,发现数据是乱码 Why? 工具里的提示是这样 ...

  6. Centos使用图形化界面配置网络

    1. 查看当前ip地址 # ip addr 2. 图形化界面配置网卡 # nmtui 界面提示,左右上下配置,OK即可.

  7. R数据分析:反事实框架和因果中介的理论理解

    其实很早之前给大家写中介分析的做法的时候我也有思考过当中介变量或者因变量不是连续变量的时候,中介怎么做?或者说这个时候中介的结果如何解释?当时反正是一直没有太想明白这些问题,毕竟这些情况在发表的文献中 ...

  8. Debian关闭防火墙命令详解

    防火墙是保护计算机系统安全的关键组件.在一些情况下,需要关闭防火墙,以允许特定的应用程序或服务访问网络.在Debian系统中关闭防火墙的方法多种多样,本文将从多个方面对Debian关闭防火墙命令进行详 ...

  9. SM国密算法

    package com.abc.apollo.common.util; import javax.crypto.IllegalBlockSizeException; import java.secur ...

  10. Idea 避免import *

    File -> setting -> Editor -> Code Style -> Java -> Imports