簡體   English   中英

使用日期選擇字符串-Android Studio-Java

[英]Using Date to select a string - android studio - java

我正在嘗試使用日期字符串來選擇要在我的android應用中顯示的字符串。

我用來獲取日期的代碼:

Calendar TextCalendar = Calendar.getInstance();
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String TextDate = DateFormat.format(TextCalendar.getTime());

我想我需要選擇字符串的代碼:

TextView MyTextView = (TextView) findViewByID(R.id.my_text_view);
MyTextView.setText (  "DateVariable" + "Comment"   )

我想這段代碼無法正常工作,因為我嘗試過,但是帶有“ DateVariable”和“ Comment”的位意味着我可以在Strings.xml中將字符串命名為“每個日期”,但由於有TITLE字符串和一個注釋字符串,所以我可以想象字符串名稱看起來像這樣

<string name="2016-02-28-TITLE">TESTING20160228</string>
<string name="2016-02-28-COMMENT">TESTING20160228Comment</string>
<string name="2016-02-29-TITLE">....
and so on

如果有人對如何進行此操作有更好的建議,將不勝感激。

謝謝〜亞歷山大

嘗試這個:

String s = TextDate + "-Comment";
getString(getResources().getIdentifier(s, "string", getPackageName()));

時區

確定當前日期需要一個時區。 世界各地的日期並不相同。 東方較新的一天到來了。 例如,在巴黎午夜之后的前幾分鍾,蒙特利爾仍然是“昨天”。

如果省略,則隱式應用JVM的當前默認時區。 即使運行時,該默認值也可能有所不同! 最好明確說明您的期望/預期時區。

java.time

您正在使用Java 8及更高版本中內置的java.time框架所取代的舊日期時間類。 很多java.time都被反向移植到Java 6和7,並進一步適用於Android

這些java.time類包括LocalDate類,用於缺少日期和時區的僅日期值。

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );

您所需的文本格式符合ISO 8601標准。 解析/生成字符串時,java.time類默認使用ISO 8601。

String output = today.toString() + "-Comment";

Java命名

順便說一句,您的問題中的代碼不遵循命名約定。 類名應以大寫字母開頭,而實例變量名應以小寫字母開頭。


關於java.time

java.time框架內置於Java 8及更高版本中。 這些類取代了麻煩的舊的舊式日期時間類,例如java.util.DateCalendarSimpleDateFormat

現在處於維護模式Joda-Time項目建議遷移到java.time。

要了解更多信息,請參見Oracle教程 並在Stack Overflow中搜索許多示例和說明。 規格為JSR 310

在哪里獲取java.time類?

  • Java SE 8SE 9及更高版本
    • 內置的
    • 標准Java API的一部分,具有捆綁的實現。
    • Java 9添加了一些次要功能和修復。
  • Java SE 6SE 7
    • java.time的許多功能在ThreeTen- Backport中都被反向移植到Java 6和7。
  • 安卓系統

ThreeTen-Extra項目使用其他類擴展了java.time。 該項目為將來可能在java.time中添加內容提供了一個試驗場。 您可以在這里找到一些有用的類,比如IntervalYearWeekYearQuarter ,和更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM