在C#中获取本地Windows用户登录会话的时间戳
我一直在尝试查看各种.NET类库的库,其中有些我可以将登录到本地计算机的用户(是否连接到域). 到目前为止 System.Security.Principal.WindowsPrincipal LoggedUser = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal; // This returns the username LoggedUser.Identity.Name 这将返回用户的名称,但是有任何方法可以获取会话详细信息,您会在AD或用户登录中看到的内容,会话持续时间等. ,用户的存在基本上. 如果您有任何想法,这将不胜感激. 预先感谢. 解决方案 您可以使用 system.DirectoryServices 名称空间.例如,下面的示例显示了用户的最后登录时间. 当然,这仅适用于域用户. using System; u
0 2024-04-21
编程技术问答社区
LINQ to SQL从不同的数据环境中断开更新对象的连接
链接 我正在将ASP.NET与C#一起使用,并尝试将Linq到SQL使用上面链接的博客中的数据上下文更新数据上下文.我如上所述创建了表中的时间戳字段,并使用以下方法: private void updateRecord(TableName updatedRecord) { context db = new context(); db.TableName.Attach(updatedRecord,true); db.SubmitChanges(); } 我的问题是,在尝试在数据上下文上调用附件方法之前,您是否应该将时间戳字段分配给您的更新记录中的任何内容? 运行此代码时,我会得到以下例外:System.Data.Linq.ChangeConflictException: Row not found or changed. 我更新所有字段,包括我在将对象传递到此更新方法之前要更新的记录的主要键.在调试对象的时间戳属性时,将其显示为null.我不确定是否应该那样.
0 2024-04-20
编程技术问答社区
在c# visual studio中编译协议缓冲区3时间戳类型?
Visual Studio 2015 C# NuGet Packages : Google.Protobuf v3.0.0 Google.Protobuf.Tools v3.0.0 MessageType Quake syntax = "proto3"; import "google/protobuf/timestamp.proto"; message Quake { google.protobuf.Timestamp _timestamp = 1; double magnitude = 2; } timestamp.proto包括在同一文件夹中 protoc 3.0.2命令行编译成功 但vs右键单击的原始文件,然后选择"运行自定义工具"失败的错误"自定义工具'Protobuftool'失败." 从Visual Studio中生成C#类? 解决方案 Protobuf文档在解释如何执行ProtoC.exe时似乎很短(弱).这是我在写作的
0 2024-04-20
编程技术问答社区
C#将时间分割成小时块
我需要一些帮助,以使2个数据划分为它们之间的小时间隔. 这正在使用"付费"数据,因此需要非常准确.我需要将clockin和colkeT划分为小时. 示例: clockin = 5/25/2011 1:40:56 pm colketout = 5/25/2011 6:22:12 pm 我需要看起来像: 5/25/2011 1:40:56 PM 5/25/2011 2:00:00 pm 5/25/2011 3:00:00 PM 5/25/2011 4:00:00 pm 5/25/2011 5:00:00 PM 5/25/2011 6:00:00 pm 5/25/2011 6:22:12 pm 我计划在"差异"表上检查这些时间以查看FI,他们应该有一个新的工资码.但是我会担心稍后的工资码. 有没有帮助分开的时间?喜欢C#,但我也可以访问MSSQL2000(这是我们拉的原始时间) 解决方案 var hou
0 2024-04-20
编程技术问答社区
protobuf-net : 如何在C#中表示DateTime?
protogen.exe为proto2 long的消息字段生成此模式: private long _Count = default(long); [global::ProtoBuf.ProtoMember(1, IsRequired = false, Name=@"Count", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)] [global::System.ComponentModel.DefaultValue(default(long))] public long Count { get { return _Count; } set { _Count = value; } } ,但AS proto2不包括日期时间类型(和protobuf-net不支持proto3,其中包括google.protobuf.Timestamp)尚不清楚如何在手动编码的C#proto对象中表示DateTime./p> 这
0 2024-04-19
编程技术问答社区
你认识16位数的时间戳吗?
我正在与Google bookmakrs合作,它返回了我似乎无法在C#中识别的16位时间戳,以转变为真实的日期,有任何想法吗? 如何将此时间戳: 1278276905502403 转换为在C#? 中有意义的东西 解决方案 在微秒中看起来像Unix时间.也就是说,自1970.01.01 00:00:00以来的微秒数量. 可以尝试以下操作: dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); dateTime = dateTime.AddMilliseconds(value/1000); (可能是一种更好的方法,但我不知道C#.) python: >>> time.ctime(1278276905502403/1000000) 'Sun Jul 4 22:55:05 2010' 其他解决方案 时间戳是自时代以来的微秒数(01/01/1970 00:00:00 UTC). 您可以将
2 2024-04-18
编程技术问答社区
.NET Compact Framework上DateTime.Now中的毫秒数总是为零?
我想在 Windows Mobile Project上的日志上拥有时间戳记.精度至少必须在一百毫秒的范围内. 但是,我对DateTime.Now的调用返回DateTime对象,Millisecond属性设置为零. 也相应地将Ticks属性舍入. 如何获得更好的时间准确性? 请记住,我的代码在紧凑型框架上运行,版本3.5.我使用HTC Touch Pro 2设备. 基于Musigenesis的答案,我创建了以下类,该类别解决了此问题: /// /// A more precisely implementation of some DateTime properties on mobile devices. /// /// Tested on a HTC Touch Pro2. public static class DateTimePrecisely { ///
0 2024-04-18
编程技术问答社区
为硬件令牌数字签名添加时间戳,添加LTV不工作/抛出异常
这是这个问题的扩展问题:添加pdf中的撤销细节同时签名 我已经使用itextsharp库和.NET Core(C#)签署了PDF. 签署PDF后,我使用上一个问题中的AdobeLtvEnabling类添加了LTV. - 直到这里PDF工作正常. 但是,当我试图将时间戳嵌入签名中时,它嵌入了,但在AdobeLtvEnabling class的启用方法中进行验证,它会引发异常: 签名者SHA256WITH1.2.840.10045.4.3.2未识别 以下是签名的代码方法: private static byte[] SignPdfWithCert(X509Certificate2 cert, byte[] SourcePdfBytes, Guid userId, string password, int xPlace, int yPlace, int width, int height, int pageNo, string dscPin, Org.Bouncy
4 2024-04-17
编程技术问答社区
如何在Oracle数据库的SQL查询中传递DateTime参数
我需要在sql-Query中包含一些"时间戳"字段,其中 SELECT * FROM PERSON WHERE PSN_CREATED_DATE >= :createdPrior 在我的代码中, createPrior 参数以以下方式定义 ... command.Parameters.Add(":createdPrior", Miscellaneous.convertToOracleTimeStamp(createdPrior)); ... static class Miscellaneous { public static OracleTimeStamp convertToOracleTimeStamp(DateTime dateTime) { OracleTimeStamp result = new OracleTimeStamp(dateTime); return result; } } ,因此我收到以下
0 2024-04-16
编程技术问答社区
System.Exception是否有一个内置的抛出时间戳?
当异常本身抛出异常时,是否可以提取方法,或者我需要手动将此信息添加到例外? 解决方案 Exception对象没有内置Timestamp属性.您可以创建一个从Exception继承并添加自己的属性的新类. 如果您将异常用作日志框架的参数,则可能需要在日志框架中直接处理时间戳(很可能使用DateTime.Now/UtcNow). 其他解决方案 发生异常时,如果您处理了,则控制将会 立即转到catch块,这正是发生异常的时间 因此,使用日期对象时,捕获块中的第一行可能会准确地为您带来 (DateTime.Now.Time等)
0 2024-04-15
编程技术问答社区
在Trace.WriteLine()中添加时间戳。
在我的C#.NET应用程序中,我对Trace.Writeline() - 方法有问题.我使用此方法很多,并希望每次使用时添加时间戳. 而不是trace.writeline(dateTime.now +"有问题!"),是否有一个解决方案,默认情况下dateTime? 解决方案 只需写自己的" TraceLine(string msg)"方法,然后开始调用: void TraceLine(string msg, bool OmitDate) { if (!OmitDate) msg = DateTime.Now + " " + msg; Trace.WriteLine(msg); } void TraceLine(string msg) {TraceLine(msg, false);} 其他解决方案 通过代码 您可以配置traceOutputoptions标志枚举. var listener = new ConsoleT
0 2024-04-14
编程技术问答社区
如何在C#中获得正确的时间戳
我想在应用程序中获得有效的时间戳,所以我写道: public static String GetTimestamp(DateTime value) { return value.ToString("yyyyMMddHHmmssffff"); } // ...later on in the code String timeStamp = GetTimestamp(new DateTime()); Console.WriteLine(timeStamp); 输出: 000101010000000000 我想要类似的东西: 20140112180244 我做错了什么? 解决方案 您的错误是使用new DateTime(),该>在00:00:00:00.000返回1月1日,而不是当前日期和时间.获得当前日期和时间的正确语法为 dateTime.now ,所以更改此信息: String timeStamp = GetTimestamp(new
0 2024-04-14
编程技术问答社区
如何在C#或Linq中用大于或小于运算符的值来比较两个字节数组?
我在我的代码中有一个字节数组,用于SQL时间戳的第一个实体框架,映射如下: [Column(TypeName = "timestamp")] [MaxLength(8)] [Timestamp] public byte[] TimeStamps { get; set; } 上述属性等于c#中的sql server" timestamp"数据类型. 在SQL Server中,我可以在下面轻松地比较"时间戳" ... SELECT * FROM tableName WHERE timestampsColumnName > 0x000000000017C1A2 我想在C#或LINQ查询中实现同样的事情.在这里,我编写了我的Linq查询,该查询无法正常工作. byte[] lastTimeStamp = someByteArrayValue; lstCostCenter.Where(p => p.TimeStamps > lastTimeStamp);
0 2024-04-13
编程技术问答社区
是否有一个高分辨率(微秒、纳秒)的DateTime对象可用于CLR?
我有一种仪器存储时间戳微秒级别,我需要存储这些时间戳,作为从仪器中收集信息的一部分.请注意,我做不需要生成时间戳 ;这些时间戳是使用高分辨率实时操作系统预先通过仪器本身进行的.解析这些值不是问题 - 它们是在UTC时间内使用标准格式存储的.最初,我想使用 c#datetime结构只能存储时间戳记毫秒. 是否提供了支持Micro-和(理想情况下)Nansecond分辨率时间戳的常见C#库,或者我要滚动我自己的c#库吗? 我是否必须滚动? 解决方案 with .net 7 ,您可以使用 DateTime.Microsecond 和/或 DateTime.Nanosecond 属性在没有创建您自己的扩展方法的情况下属性,但它们 stly 提供了与 Ticks .. .NET 7之前,在各种时期可用的时间最低的时间 日期和时间结构是Ticks中可用的" tick" 财产.作为参考,单个tick为100ns.开发人员有 传统上,必须对" tick"值执行计算 确定微秒和纳秒值.在
0 2024-04-12
编程技术问答社区
在c#中创建一个时间戳的函数
我想知道,是否有一种方法可以在DateTime中创建C#中的时间戳? 我需要一个毫秒的精度值,它也可以在紧凑的框架中起作用(说既然DateTime.tobinary()在CF中不存在). 我的问题是我想将此值存储在数据库不可知论的方式中,以便以后可以对其进行分类,并从另一个等等中找出更大的值. 解决方案 我总是使用以下内容: public static String GetTimestamp(this DateTime value) { return value.ToString("yyyyMMddHHmmssfff"); } 这将为您提供一个像200905211035131468这样的字符串,因为字符串从时间戳的最高阶段到最低订单的最低顺序简单字符串在您的SQL查询中进行排序,如果您在数据库中粘贴值 其他解决方案 我相信您可以使用以下 来精确创建一个unix样式的Datestamp //Find unix timestamp (seconds
0 2024-04-11
编程技术问答社区
如何在.NET/C#中获得滴答精度的时间戳?
到目前为止,我使用DateTime.Now来获取时间戳,但是我注意到,如果您在循环中打印DateTime.Now,您会看到它在Descrete跳跃中的增量约为大约. 15 ms.但是,对于我的应用程序中的某些情况,我需要获得最准确的时间戳,最好使用tick(= 100 ns)精度.有任何想法吗? 更新: 显然,StopWatch/QueryPerformanceCounter是必经之路,但只能用于测量时间,所以我在应用程序启动时考虑调用DateTime.Now然后只需将经过的时间从StopWatch添加到从DateTime.Now返回的初始值.至少应该给我准确的相对时间戳,对吗?您如何看待这个(黑客)? 注意: StopWatch.ElapsedTicks与StopWatch.Elapsed.Ticks不同!我使用前者假设1 tick = 100 ns,但是在这种情况下为1 tick = 1/StopWatch.Frequency.因此,要获得等同于DateTim
0 2024-04-10
编程技术问答社区
如何在C#中获得unix的时间戳
我曾环顾四周,甚至查看了一些建议的问题,似乎没有回答,如何在C#? 中获得Unix Timestamp 解决方案 通过使用 DateTime.UtcNow 减去1970-01-01的时期时间. ,例如 Int32 unixTimestamp = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; DateTime.UtcNow可以用任何您想获得的unix时间戳. 替换. 还有一个字段,DateTime.UnixEpoch,它是其他解决方案 在.net 4.6时,有 DateTimeOffset.ToUnixTimeSeconds DateTimeOffset.ToUnixTimeSeconds . 这是一种实例方法,因此您希望您将其称为 DateTimeOffset.您也可以施放任何DateTime的实例,尽管当心 时区.要获取当前的时间戳: DateTim
2 2024-04-10
编程技术问答社区
从脚本中调用make,只有当main.c被修改时才调用
问题:我只想运行一个脚本(例如run.sh),它将为我决定是否应调用make(如果需要),然后运行可执行文件. 我的项目只有一个文件,即Main.C.但是,只有链接使我等待一点,这是我调试时不喜欢的,我渴望该程序运行.我想要这样的东西.SH: #!/bin/bash if[ main.c has changed from the last time make was called] then make > compile.txt fi ./a.out 使得仅在修改main.c时才调用make.通过修改,可以将时间戳更改(即使可能不是实际标准)更改.这是可行的吗? 如果是这样,我看到了答案,这让我认为每当我进入IF语句的身体时调用电话,将创建main.c的副本,或将文件的时间戳存储(也许是在文件中),以便下次脚本运行时,它将恢复该信息并检查IF条件看看时间戳是否不同.所以,第二个问题是,如何做? 解决方案 简单 #!/bin/bash if [ a
0 2024-04-10
编程技术问答社区
如何在rt linux中从用户程序访问内核内存?
RT Linux中的客户端和服务器通信.客户端正在发送数据,而服务器是接收器.UDP用于客户端和服务器之间的通信. 当服务器(RT Linux)从客户端接收数据时,内核应停止正在执行的操作并开始执行新到达的数据.我想计算中断在内核(时间戳)中的时间. 在RT-Linux中,所有操作系统操作都在内核进行.因此,我正在计算内核源代码中的中断时间.因此,我在位置/usr/src/linux-version/net/core/dev.c中修改了内核源代码,如下所示: 我正在计算时间并存储在缓冲区Skb中. //此代码在网络设备驱动程序级别. int netif_rx(struct sk_buff *skb) { __net_timestamp(skb);//I modify the code in kernel to get the timestamp and store in buffer } //将数据存储到缓冲区后.内核会将其发送到上层,例如IP,UDP,INET
4 2024-04-09
编程技术问答社区
如何将64位长数据类型转换为16位数据类型
我想知道如何将64 bit long数据类型转换为任何16 bit数据类型.此功能在以太网应用中需要包括时间戳记.只有 2个字节( 16位)可以包括时间戳记.但是我们从Win API中获得64 bit long作为时间邮票值.因此,从64位数据类型转换为16位数据类型是必不可少的. 解决方案 好吧,您不能在不丢失某些信息的情况下将64位信息放入16位存储中. 因此,如何量化或截断时间戳.例如.假设您以纳秒精度获得时间戳,但是您只需要以秒的精度存储它.在这种情况下,您将64位数除以1000000000,并留下秒.然后它可能适合16位(16位只能存储高达65535秒). 如果它不合适,那么您会定期将时间戳包裹.在您的情况下,这再次可能是一个问题,或者可能不是问题. 在任何情况下,如果您需要连接需要时间戳的现有库 - 在时间戳中找出 (时钟刻度?秒?年?年?).然后找出您使用的Windows Times功能.然后将Windows Time单元转换为单元 - 您使用的时
0 2024-04-09
编程技术问答社区