asp.net - java calendar类的如下操作 在.net c#中要怎么实现?
大家讲道理
大家讲道理 2017-04-17 14:53:48
0
1
877

Java has Calendar Class, but C# doesn't. How to implement the below Java function in C#?

//获得从昨天开始的时间 in Java public static long yesterdayBeginTime() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTimeInMillis(); }
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

reply all (1)
迷茫

已经在你另一个贴里回答你了 http://segmentfault.com/q/1010000003707587

主要是 C# 和 Java 的时间表示有点不同

  • C# 用 Tick(100纳秒),Java 用毫秒。

  • C# 是从 0001-1-1 开始,Java 是从 1970-1-1 开始

所以需要转换,下面两个转换方法是从 Viti.Util 抄来的代码

///  /// 计算从1970年1月1日到指定日期的毫秒数数,与 Java 中 java.util.Date.getTime() 返回的值相同。 ///  ///  ///  ///  public static long ToJavaMilliseconds(this DateTime value, TimeZoneInfo timezone = null) { DateTime date1970 = new DateTime(1970, 1, 1, 0, 0, 0); date1970 = TimeZoneInfo.ConvertTimeFromUtc(date1970, timezone ?? TimeZoneInfo.Local); return (value.Ticks - date1970.Ticks) / 10000; } ///  /// 根据 Java 中表示时间和 long 型数据,恢复成  类型数据。 ///  ///  ///  ///  public static DateTime FromJavaMilliseconds(long value, TimeZoneInfo timezone = null) { DateTime date1970 = TimeZoneInfo.ConvertTimeFromUtc( new DateTime(1970, 1, 1), timezone ?? TimeZoneInfo.Local); return new DateTime(date1970.Ticks + value * 10000); }
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!