[英]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 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.time框架內置於Java 8及更高版本中。 這些類取代了麻煩的舊的舊式日期時間類,例如java.util.Date
, Calendar
和SimpleDateFormat
。
現在處於維護模式的Joda-Time項目建議遷移到java.time。
要了解更多信息,請參見Oracle教程 。 並在Stack Overflow中搜索許多示例和說明。 規格為JSR 310 。
在哪里獲取java.time類?
ThreeTen-Extra項目使用其他類擴展了java.time。 該項目為將來可能在java.time中添加內容提供了一個試驗場。 您可以在這里找到一些有用的類,比如Interval
, YearWeek
, YearQuarter
,和更多 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.