【问题标题】:Android get date and insert to filenameAndroid获取日期并插入文件名
【发布时间】:2012-01-01 04:40:17
【问题描述】:

我遇到了一个非常烦人的问题。我想获取当前日期/时间并将其插入到文件名中,但我一辈子都无法让它工作。

我想将时间设为 2011-11-18 12:13:57,然后将其插入到我的文件名中

文件名-2011-11-18-12:13:57.tar.gz

我尝试过SimpleDateFormat 等,但它不起作用!

(我正在用 Eclipse Indigo 编写)

【问题讨论】:

  • 我想,这将是一个无效的文件名?你有什么错误吗?
  • 我没有收到任何错误,当我按下按钮时它不会创建任何文件...我尝试像 filename-"+date+".tar.gz 如果我删除 "+date+"它可以毫无问题地创建文件。
  • 那么您必须只使用无效的文件名。尝试使用类似 filename_2011_11_18_12_13_57.tar.gz 的文件名。这样就不会有问题了。
  • 将日期中的“-”和“:”替换为“_”,然后尝试。它应该可以工作
  • 我认为@Hiral 关于无效文件名是正确的。试试filename_2011-11-18_12-13-57.tar.gz 之类的东西。换句话说,用下划线将filenamedate 分开,用下划线将datetime 分开,并将time 中的: 替换为-。如有必要,split 会更容易,并且会使用有效字符作为文件名。

标签: android date time filenames


【解决方案1】:

你可以用这个:

import java.text.SimpleDateFormat;
// ...

SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.US);
Date now = new Date();
String fileName = formatter.format(now) + ".tar.gz";

此外,您一定在某个地方遇到了错误,这对找到问题有很大帮助。确保您没有空的 catch 块:

catch (Exception e) {}

【讨论】:

  • 如果我使用这个 Eclipse 告诉我 date() 是未定义的,我需要参数来匹配它......我可以让它打印日期,但日期是 01_01_1970
  • 然后添加import java.util.Date;
  • 我不敢相信这是一个简单的解决方案!我已经搞砸了2天!我不知道该怎么感谢你才足够! :) Eclipse 已经自动导入了其他所有内容,但不是这个!谢谢!
  • 您可以通过指定已知的安全区域设置来消除 Eclipse 中针对 SimpleDateFormat 的警告。例如 SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.US);
【解决方案2】:

使用它来获取您想要的日期时间:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String timeStamp = dateFormat.format(date.toLocaleString());

你可以像这样创建你的文件:

FileOutputStream out = context.openFileOutput(timeStamp , context.MODE_PRIVATE);
out.write(string.getBytes());
out.close();

【讨论】:

  • -1 dateformat 已创建但未在任何地方使用?还有为什么你会无缘无故地将一个字符串复制到另一个字符串?:String lastSyncTime = timeStamp;
  • 我只是复制并粘贴了我在一个应用程序中使用的代码,这就是为什么
  • 好的,但是dateFormat 仍然没有在任何地方使用,所以可以删除。你为什么给我-1?
  • 好的,但是现在他得到的日期还是2011-11-18 12:13:57,对他不起作用。(见问题中的cmets)
【解决方案3】:

我希望这可以帮助您获取当前日期和时间

How to use SimpleDateFormat to show the current Date?

【讨论】:

  • 这是获取当前日期的糟糕方法。已经有用于此目的的 Java 函数。另外,发帖人面临的问题不是获取日期,而是创建文件。
  • 我上面已经明确提到了,这是为了让治疗不要保存在文件中@LAS_VEGAS
  • 很抱歉,但我认为这仍然是获取当前日期的一种非常糟糕的方式。因为您可以通过几行代码将当前日期作为字符串获取。您的逻辑可能有一些难以发现的错误。
猜你喜欢
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多