【问题标题】:Long date conversion长日期转换
【发布时间】:2016-10-21 08:19:38
【问题描述】:

我最近开始支持用 java 编写的系统/应用程序。

我需要将以下长日期转换为 2016 年 10 月 21 日的可读日期:

Login date : 634940995544109969
Logout date : 63494125060775764

我尝试了不同的代码,我似乎不正确。 解决方案可以是 java 或 c#。

【问题讨论】:

  • 您是否有来自源代码的示例说明该数字是如何生成的?
  • 那么这些数字代表什么?自 Unix 时代以来,它们看起来不像毫秒甚至微秒......你从哪里得到这些值?
  • 要转换你需要了解更多关于LoginLogout的信息。
  • 啊,另一个伪装成问题的工作任务,即使借口“我试过了,但没有用:'(”。
  • 两个数字开头的“63”与公元 1 月 1 日至 2016 年 10 月 21 日之间的秒数的前两位数一致 (63,612,604,800)。注销时间比登录日期小一个数量级。因此,如果它是自公元 1 年 1 月 1 日以来的秒数的倍数,则用户在现代登录,但在公元 200 年左右注销。请告诉我们有关您的时间旅行计算机的所有信息。更好的是,建议将其作为新的电视剧。

标签: java c# date date-conversion


【解决方案1】:

您必须在输入的末尾添加 L。

试试下面的代码。

    public static void main(String[] args) {
    long val = 634940995544109969L;
    Date date=new Date(val);
    System.out.println(DateFormat.getDateInstance().format(date));
}

输出将是可读格式。 例如:上面的代码将给出 Mar 5, 20122449 作为输出。 毫秒转换为日期。

您可以在下面的链接中检查输出的正确性

Milliseconds to Date Conversion

【讨论】:

  • 假设 long 表示自纪元时间以来的毫秒数
【解决方案2】:

您也可以使用以下代码进行转换

    public static void main(String[] args) {
    long lMilliSeconds = 634940995544109969L;

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(lMilliSeconds);
    System.out.println(cal.getTime());
}

注意-:我认为时间以毫秒为单位。

输出-:Fri Mar 05 07:45:09 IST 20122449

【讨论】:

    【解决方案3】:

    尝试在 c# 中跟随

     long a = 634940995544109969;
                DateTime dt = new DateTime(a);
                Console.WriteLine(dt.ToString("dd MMM yyyy"));
    

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 2013-09-19
      相关资源
      最近更新 更多